This change, starting with the master/dev builds, shifts to crafting our release builds with GitHub Actions as an alternative to our aging Buildbot infrastructure. Additionally, this offers increased transparency of how the binaries are generated.
Some scattered notes:
The Linux builds use a custom container image mocked to be as close to our existing build VM, primarily as to not introduce additional runtime dependencies or different compiler version behavior.
The Windows builds use the stock GHA Windows Server 2022 runner with its default of Visual Studio 2022. We have the option to downgrade back to VS 2019 if that becomes an issue
Builds are created for the same SDKs / engines as our Buildbot builds
Builds submit symbols in Breakpad format for usage with Accelerator, just as with our Buildbot builds
Release package format and naming is identical to the Buildbot builds, with a Release and Tag being created for each master push, and the Windows and Linux package being uploaded to each release
PDBs are not yet piped through to our symbol server, but are exposed as Workflow Artifacts
Our scheduled scripts that manage the download data on the SourceMod downloads page would be able to be updated to optionally download the releases locally, and to either point at the local versions as we do now, or to point to them on GitHub. We can use a similar process to fetch the PDBs and add to our symbol server.
The full workflow currently takes 30-40 minutes to run. There is room for improvement there, but any significant improvement would likely require a significant rework.
If this goes well, looking at SM 1.11, MM:S, and AMXX builds are on the table.
This change, starting with the master/dev builds, shifts to crafting our release builds with GitHub Actions as an alternative to our aging Buildbot infrastructure. Additionally, this offers increased transparency of how the binaries are generated.
Some scattered notes:
Our scheduled scripts that manage the download data on the SourceMod downloads page would be able to be updated to optionally download the releases locally, and to either point at the local versions as we do now, or to point to them on GitHub. We can use a similar process to fetch the PDBs and add to our symbol server.
The full workflow currently takes 30-40 minutes to run. There is room for improvement there, but any significant improvement would likely require a significant rework.
If this goes well, looking at SM 1.11, MM:S, and AMXX builds are on the table.