This is a quick-and-dirty guide based on my experiences so far releasing updates to [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework|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 [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/commits/master/hemtt.toml|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 [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/pipelines|Pipeline]] should automatically run and add a new entry to [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/releases|Releases]]. It should be apparent if that pipeline is triggered/is running/has run. If it hasn't, try going to [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/pipelines|Pipelines]] and running the release job yourself by clicking the annotated things in the following image: {{:guides:run_the_release_pipeline.png?nolink&800|}} ==== 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 [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/pipelines|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 [[https://code.clearbackblast.com/clear-backblast/members/cbb-framework/-/releases|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. {{:guides:edit_a_release.png?nolink&800|}} ==== 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 [[https://store.steampowered.com/app/233800/Arma_3_Tools/|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. {{:guides:dsutils.png?nolink&800|}} ==== 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?