Files
craft-common-actions/.github/workflows
nnaannooandnnaannoo 13f3c2c99b release.yml: export each app's build variables from its env.sh, so a new app needs no change here (#148)
* release.yml: export each app's build variables from its env.sh, not a list

Eight release jobs set <APP>_VERSION, <APP>_BUILD_DATE and <APP>_BUILD_SHA for
every app by name (298 lines), and the FreeBSD VM step listed them all again,
so every new app meant editing this workflow. materialcraft and texturecraft
were never added: their packaging reads MATERIALCRAFT_* and TEXTURECRAFT_*,
so their release builds got no release version, date or commit, and a
dispatched run with a version override packaged them under Cargo.toml's.

actions/export-app-build-env reads the prefix the app's packaging/env.sh (or
packaging/common.sh) already declares in VERSION="${<PREFIX>_VERSION:-...}",
falling back to app-name in capitals, and writes the three variables to
GITHUB_ENV; its names output feeds the FreeBSD VM's envs. Each job runs it
right after checkout. On all 17 apps' env.sh it finds the prefix the old
list used.

Tests run the script on sample env.sh files and check release.yml sets no
app's variable by name, so the list can't come back.

* Export the build variables after the contributor snapshot, which must follow the checkout

test_contributor_refresh requires each build job to load the contributor snapshot directly after checkout, so the export step goes after it when a job has one. Also fix the line-break test passing a variable twice.

---------

Co-authored-by: nnaannoo <n4nosaur@gmail.com>
2026-11-06 07:36:30 -05:00
..