This is a quick-and-dirty guide based on my experiences so far releasing updates to CBB Framework. I will attempt to note where I don't understand what is actually necessary, but I believe I've demonstrated that the steps are sufficient.
Prepare your commits
Once you think you're ready to release things, make sure you:
- Increment the version number in hemtt.toml. This is definitely necessary.
- Add a tag (git tag) to the commit you intend the release to be built from. It is not clear to me if this is necessary or just as nice-to-have. It is not sufficient without the version number increment.
Send the commits to the CBB Gitlab
Not going to go into how to do this here.
Once the commits get there, a Pipeline should automatically run and add a new entry to Releases. It should be apparent if that pipeline is triggered/is running/has run. If it hasn't, try going to Pipelines and running the release job yourself by clicking the annotated things in the following image:
Edit the release that's been generated a little
Your release still doesn't have a package, which is something we want [citation needed?]. You can retrieve that by going to Pipelines, selecting the job that ran, browsing the artifacts with the Browse button in the right sidebar, and then navigating into releases and copying the link to the ZIP file there. Then go to Releases, click on the Edit icon (the pencil button in the upper right), and add that URL as a package asset to the release (under assets at the bottom).
Tada! now you can send the link to this release to Erin, along with an appropriate bribe.
Sign the addons
The rest of this is basically for Erin, or whoever else ends up with the ability to put things into the CDN and build the A3S repos.
First, download and unzip the addons from the Release page. They must be accessible somewhere on the server (where?) but I haven't tried to find out where yet. …also the signing step seems like it needs to happen on windows? like even on wine it doesn't work right??? [citation needed]
HEMTT tries to sign the addons but currently it fails and generates bad signatures (why?). So use the Arma 3 Tools DSUtils to re-sign the addons.
The source directory should be set to the addons directory. Use a New private key each time, because the bikey on the server is what allows a mod to be run by people who join–so rotating the keys out enforces the use of the new versions. the name doesn't technically matter but also you may as well use the format we've used so far: cbb_framework-1.18.0.bikey
Otherwise signing should be painless. Click Process Files and it'll go pretty quick.
Upload to the CDN and update A3S
the bikey file you generated goes into /home/cbb/Dropbox/CBB Server Public Keys
(this is also /mnt/sdb1/srv/cbb/steamcmd/servers/arma3/keystores/
) in the appropriate keystore (which is required
). The Arma 3 server launcher script will copy those into /mnt/sdb1/srv/cbb/steamcmd/servers/arma3/keys/
as appropriate.
the Framework stuff goes into /home/cbb/www/cdn/arma/3/required/@cbb_framework
. Just upload the addons
and mission
directories.
Then in the CDN pane of mux run tools/a3s/build.py
and your changes go out to everybody via A3S and magic. Should probably use a test A3S repo but lol fuck off.
Grab the stuff with A3S, restart the Arma 3 server so it'll use the new framework and the new keys, and try to join the server. If it says a bunch of stuff isn't signed by keys recognized by the server, you didn't do the signing part did you? you forgot and thought it was already signed, AND IT IS, but it needs to be CORRECTLY signed stupid. how many times are you going to do that?