Commit Graph

8 Commits

Author SHA1 Message Date
maj00r
c1c47f746e Harden the CI workflow
Actions pinned to full commits, no token left in the checkout, no binaries
from a fork's pull request among the artifacts, the version passed through the
environment, an audit of the NuGet packages, time limits, one release at a
time with checksums and never over another commit's release, and Dependabot
for the actions and packages.
2026-10-04 13:50:41 +02:00
maj00r
2b3c46938c Check GitHub for a newer starter once a day, with a button to check now
The stable channel compares versions; the testing channel offers the staging
build of another commit. The channel switch is the starter's only, not the
simulator's.
2026-10-04 13:26:49 +02:00
maj00r
a7a1e34239 Version every build of main by its commit count and release it
Major and minor stay in the project file; the patch is counted by CI, so no
bot has to commit a bump. staging keeps its rolling pre-release.
2026-10-04 13:25:46 +02:00
maj00r
cc8496aa85 Run the tests before building the packages 2026-10-04 13:25:23 +02:00
maj00r
20da0a4f77 Keep the Windows package zipped on the way to the release
download-artifact unpacks a zip it detects, so the Windows package arrived in
dist/ as loose files (Starter.exe, the native dlls, startercfg/) and gh tried
to upload the startercfg directory as a release asset. skip-decompress leaves
the artifact as the file it was uploaded as.

The two packages are also named explicitly instead of globbing dist/*, so a
missing one fails the step rather than quietly publishing half a release.
2026-08-25 23:50:59 +02:00
maj00r
5d29d6031d Download the packages with download-artifact v8
The packages are uploaded with archive: false, and non-zipped artifacts can
only be fetched by v8 of download-artifact - v7 fetched the first one, then
failed the run with "Unable to download and extract artifact".
2026-08-25 23:46:27 +02:00
maj00r
5e4416c9cb Publish rolling pre-releases for main and staging
Workflow artifacts can only be downloaded by signed-in users with access to
the repository, so they are useless for handing a build to anyone else. After
the matrix publishes, a release job recreates a rolling pre-release from the
same packages; its assets are downloadable without an account:

  releases/download/latest/<file>    from main
  releases/download/staging/<file>   from staging

Each branch owns its tag, so a staging build never overwrites the main one.
The release is deleted and created again rather than edited, so the tag
follows its branch and assets from an older build do not linger. Write access
is granted to that job only, the workflow default stays read.
2026-08-25 23:38:26 +02:00
94c0173093 Create .net workflow 2026-08-19 13:02:09 +02:00