Make GC2 the sole GC64 collector path #19
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Rolling release | |
| on: | |
| push: | |
| tags: | |
| - "b*.*.*" | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: "Existing b<major>.<minor>.<patch> tag to package" | |
| required: true | |
| type: string | |
| permissions: | |
| contents: write | |
| env: | |
| LJ_RELEASE_RUN_STOCK: "0" | |
| jobs: | |
| validate: | |
| name: Validate rolling tag | |
| runs-on: ubuntu-24.04 | |
| env: | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| steps: | |
| - name: Validate bX.Y.Z tag | |
| run: | | |
| if [[ "$RELEASE_TAG" == "b1.1" ]]; then | |
| echo "::error::release b1.1 was renamed to b1.0.1; use b1.0.1" | |
| exit 1 | |
| elif [[ ! "$RELEASE_TAG" =~ ^b[0-9]+[.][0-9]+[.][0-9]+$ ]]; then | |
| echo "::error::rolling releases must use b<major>.<minor>.<patch> tags, got '$RELEASE_TAG'" | |
| exit 1 | |
| fi | |
| linux: | |
| name: Linux x86_64 artifact | |
| runs-on: ubuntu-24.04 | |
| needs: validate | |
| env: | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| SOURCE_REF: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} | |
| LUA: luajit | |
| steps: | |
| - name: Checkout release automation | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| path: automation | |
| fetch-depth: 0 | |
| - name: Install verification tools | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends unzip xz-utils | |
| - name: Checkout release source | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.SOURCE_REF }} | |
| path: source | |
| fetch-depth: 0 | |
| - name: Install build tools | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| build-essential luajit xz-utils | |
| - name: Build, install, test, and archive Linux binary | |
| run: | | |
| LJ_RELEASE_ROOT="$PWD/source" \ | |
| automation/tools/release/build_artifact.sh \ | |
| linux-x86_64 "$RELEASE_TAG" "$PWD/source/release-artifacts/$RELEASE_TAG" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: rolling-release-linux | |
| path: | | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-linux-x86_64.tar.xz | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-linux-x86_64.tar.xz.sha256 | |
| macos: | |
| name: macOS x86_64 artifact | |
| runs-on: macos-26-intel | |
| needs: validate | |
| env: | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| SOURCE_REF: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} | |
| LUA: luajit | |
| MACOSX_DEPLOYMENT_TARGET: "13.0" | |
| steps: | |
| - name: Checkout release automation | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| path: automation | |
| fetch-depth: 0 | |
| - name: Checkout release source | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.SOURCE_REF }} | |
| path: source | |
| fetch-depth: 0 | |
| - name: Install packaging tools | |
| run: | | |
| if ! command -v luajit >/dev/null 2>&1; then | |
| brew install luajit | |
| fi | |
| if ! command -v xz >/dev/null 2>&1; then | |
| brew install xz | |
| fi | |
| - name: Build, install, test, and archive macOS binary | |
| run: | | |
| LJ_RELEASE_ROOT="$PWD/source" \ | |
| automation/tools/release/build_artifact.sh \ | |
| macos-x86_64 "$RELEASE_TAG" "$PWD/source/release-artifacts/$RELEASE_TAG" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: rolling-release-macos | |
| path: | | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-macos-x86_64.tar.xz | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-macos-x86_64.tar.xz.sha256 | |
| windows-ucrt: | |
| name: Windows x86_64 UCRT artifact | |
| runs-on: ubuntu-24.04 | |
| container: debian:trixie | |
| needs: validate | |
| env: | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| SOURCE_REF: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} | |
| LUA: luajit | |
| steps: | |
| - name: Install build tools | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends \ | |
| build-essential ca-certificates file git luajit make unzip xz-utils zip \ | |
| binutils-mingw-w64-ucrt64 gcc-mingw-w64-ucrt64 mingw-w64 \ | |
| wine wine64 | |
| - name: Checkout release automation | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| path: automation | |
| fetch-depth: 0 | |
| - name: Checkout release source | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.SOURCE_REF }} | |
| path: source | |
| fetch-depth: 0 | |
| - name: Build, install, test, and archive Windows UCRT binary | |
| run: | | |
| mkdir -p "$PWD/.ci-home" "$PWD/.wine" | |
| export HOME="$PWD/.ci-home" | |
| export WINEPREFIX="$PWD/.wine" | |
| git config --global --add safe.directory "$PWD/source" | |
| LJ_RELEASE_ROOT="$PWD/source" \ | |
| automation/tools/release/build_artifact.sh \ | |
| windows-x86_64-ucrt "$RELEASE_TAG" "$PWD/source/release-artifacts/$RELEASE_TAG" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: rolling-release-windows-ucrt | |
| path: | | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-windows-x86_64-ucrt.zip | |
| source/release-artifacts/${{ env.RELEASE_TAG }}/LuaJITMT-${{ env.RELEASE_TAG }}-windows-x86_64-ucrt.zip.sha256 | |
| publish: | |
| name: Publish GitHub release | |
| runs-on: ubuntu-24.04 | |
| needs: | |
| - linux | |
| - macos | |
| - windows-ucrt | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GH_REPO: ${{ github.repository }} | |
| RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| SOURCE_REF: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} | |
| steps: | |
| - name: Checkout release automation | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| path: automation | |
| fetch-depth: 0 | |
| - name: Checkout release source | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.SOURCE_REF }} | |
| path: source | |
| fetch-depth: 0 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| merge-multiple: true | |
| - name: Generate release notes and checksums | |
| run: | | |
| automation/tools/release/verify_artifacts.sh "$RELEASE_TAG" dist | |
| find dist -maxdepth 1 -type f -name '*.sha256' -delete | |
| (cd dist && find . -maxdepth 1 -type f -name 'LuaJITMT-*' -print0 | | |
| sort -z | xargs -0 sha256sum > SHA256SUMS) | |
| LJ_RELEASE_ROOT="$PWD/source" \ | |
| automation/tools/release/release_notes.sh "$RELEASE_TAG" > RELEASE_NOTES.md | |
| test -s RELEASE_NOTES.md || printf -- '- Rolling release %s\n' "$RELEASE_TAG" > RELEASE_NOTES.md | |
| - name: Create or update release | |
| run: | | |
| if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then | |
| gh release edit "$RELEASE_TAG" \ | |
| --title "$RELEASE_TAG" \ | |
| --notes-file RELEASE_NOTES.md \ | |
| --prerelease | |
| else | |
| gh release create "$RELEASE_TAG" \ | |
| --title "$RELEASE_TAG" \ | |
| --notes-file RELEASE_NOTES.md \ | |
| --prerelease | |
| fi | |
| gh release upload "$RELEASE_TAG" dist/* --clobber |