Automated Packaging and Deployment
kaytotes opened this issue ยท 1 comments
The current workflow for packing and releasing updates to the addon is a bit of a pain so this needs re-evaluating. Using this issue as a general plan for this functionality. Consider this subject to change.
Tools Required
- Travis-CI (For hooking git and triggering everything else)
- BigWigsMods/packager (Will do most of the actual work)
Theoretical Workflow
- Push changes to GitHub, including a tag which signifies a new release.
- Travis CI notified by GitHub
- Travis-CI downloads BigWigsMods/packager.
- BigWigsMods/packager runs all of the tasks it needs to create a zip.
- BigWigsMods/packager uploads to WoWInterface and CurseForge.
If I can get some kind of automatic linting that would be nice too.
Started work on this earlier so if you're on the feature branch you'll notice that the contents of libs
has gone and your install is no longer functioning. To generate a working build you need to do either of the following.
Project Setup
To get a working installation of ImprovedBlizzardUI you must first clone the repository to a directory of your choosing. From there cd
into the .release
directory.
- Execute
./release.sh
(You'll need something like GitBash with thezip
command installed.
After a short while a configured and ready to go version of ImprovedBlizzardUI including a .zip file will be present in the .release
directory. Currently the .zip bases the name of the last git tag which is something like 1.3 (I've been slacking on tags) but going forwards this will always match the tags and releases here.
At this point you can do one of two things.
-
Just copy the generated folder like any other addon. (If you're not developing).
-
If you are developing then copy the LibStub and Wasabi from the generated addon folders lib directory and copy it into your own local one. This will then allow the addon to function in "development mode" so you can continue working and committing directly from the root folder just like has been the case up to now.
For example my working directory (Within WoW//Interface//Addons//ImprovedBlizzardUI
)