Any seasoned developer will agree that automating repetitive tasks is a good idea,
and one of the most repetitive things we do as addon developers is publishing addon updates.
This guide will instruct you how you can automate packaging and publishing new releases,
so you can focus more on developing the addon itself.
With this tool, addons can be published at the two major addon sites; CurseForge/WoWAce (and thus Curse), and WoWInterface.
Addons can also be published (packaged) on GitHub in case you'd also want that.
To do this we're going to rely on a few tools.
You've probably already heard of Git, it's basically a tool to keep track of changes done to
your project's code, among other things.
If you've heard of (or used) Git, you've probably also heard of (and used) GitHub,
an online service that lets you host your Git repositories in the cloud.
But you've probably not heard of Travis CI, it's a tool exclusively made for GitHub that lets developers run
automated tests on their code. We'll be using this to package and release our addon(s).
These tools combined will automatically do everything you would normally do when publishing
a new version for your addon(s), such as increasing the Version field in your TOC file,
fetching localization, embedding libraries and more, then finally zip everything and publish.
How it works
After the setup (see the next two posts), the following happens:
You push your changes to GitHub, including a tag which signifies a new release/version.
Travis CI gets notified by GitHub, which clones your repository and downloads the packager script.
The packager runs all of the tasks it needs to create a zip.
The packager uploads that zip to all the sites you've specified to release at.
Addons are now uploaded and are awaiting approval by the site administrators.
So, all you have to do (once set up) is to push to GitHub with a tag, like so:
I'm not going into how to use Git and GitHub, there are plenty of guides that will explain that
better than I can do here, so I'm going to focus on the specifics for the actual packaging tools;
Travis CI and the packager script.
Sidenote: You don't have to use GitHub and Travis CI, you could just as well just run the script locally,
or use it with other CI tools for GitLab or Bitbucket, but this guide focuses on GitHub and Travis CI.
Last edited by p3lim : 10-01-18 at 10:25 PM.
Reason: Use annotated tags in example