Update VERSION in preparation for 0.62.1 release #40
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: Release | |
| on: | |
| push: | |
| tags: | |
| - '[0-9]+.[0-9]+.[0-9]+' | |
| concurrency: release | |
| permissions: | |
| packages: read | |
| jobs: | |
| # validation to assure that we should in fact continue with the release should | |
| # be done here. the primary reason for this step is to verify that the release | |
| # was started correctly by pushing a `release-X.Y.Z` tag rather than `X.Y.Z`. | |
| pre-artefact-creation: | |
| name: Tasks to run before artefact creation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout main | |
| uses: actions/checkout@v6.0.2 | |
| with: | |
| ref: "main" | |
| token: ${{ secrets.RELEASE_TOKEN }} | |
| - name: Validate CHANGELOG | |
| uses: docker://ghcr.io/ponylang/release-bot-action:0.6.3 | |
| with: | |
| entrypoint: pre-artefact-changelog-check | |
| x86_64-linux: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20250115 | |
| name: x86-64-unknown-linux-ubuntu24.04 | |
| triple-os: linux-ubuntu24.04 | |
| triple-vendor: unknown | |
| - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu22.04-builder:20230924 | |
| name: x86-64-unknown-linux-ubuntu22.04 | |
| triple-os: linux-ubuntu22.04 | |
| triple-vendor: unknown | |
| - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-alpine3.20-builder:20250510 | |
| name: x86-64-unknown-linux-alpine3.20 | |
| triple-os: linux-alpine3.20 | |
| triple-vendor: unknown | |
| - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-alpine3.21-builder:20250510 | |
| name: x86-64-unknown-linux-alpine3.21 | |
| triple-os: linux-alpine3.21 | |
| triple-vendor: unknown | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.22-builder:20251022 | |
| name: x86-64-unknown-linux-alpine3.22 | |
| triple-os: linux-alpine3.22 | |
| triple-vendor: unknown | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.23-builder:20260201 | |
| name: x86-64-unknown-linux-alpine3.23 | |
| triple-os: linux-alpine3.23 | |
| triple-vendor: unknown | |
| name: ${{ matrix.name }} | |
| container: | |
| image: ${{ matrix.image }} | |
| options: --user pony | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Release | |
| run: bash .ci-scripts/x86-64-release.bash | |
| env: | |
| CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
| TRIPLE_VENDOR: ${{ matrix.triple-vendor }} | |
| TRIPLE_OS: ${{ matrix.triple-os }} | |
| # Currently, Github actions supplied by GH like checkout and cache do not work | |
| # in musl libc environments on arm64. We can work around this by running | |
| # those actions on the host and then "manually" doing our work that would | |
| # normally be done "in the musl container" by starting the container ourselves | |
| # for various steps by invoking docker directly. | |
| # | |
| # This is not in line with our standard pattern of "just do it all in the | |
| # container" but is required to work around the GitHub actions limitation | |
| # documented above. | |
| arm64-linux: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: ubuntu-24.04-arm | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - image: ghcr.io/ponylang/ponyc-ci-arm64-unknown-linux-alpine3.21-builder:20250510 | |
| name: arm64-unknown-linux-alpine3.21 | |
| triple-os: linux-alpine3.21 | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.22-builder:20251022 | |
| name: arm64-unknown-linux-alpine3.22 | |
| triple-os: linux-alpine3.22 | |
| - image: ghcr.io/ponylang/ponyc-ci-alpine3.23-builder:20260201 | |
| name: arm64-unknown-linux-alpine3.23 | |
| triple-os: linux-alpine3.23 | |
| - image: ghcr.io/ponylang/ponyc-ci-arm64-unknown-linux-ubuntu24.04-builder:20250510 | |
| name: arm64-unknown-linux-ubuntu24.04 | |
| triple-os: linux-ubuntu24.04 | |
| triple-vendor: unknown | |
| name: ${{ matrix.name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Pull Docker image | |
| run: docker pull ${{ matrix.image }} | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| ${{ matrix.image }} \ | |
| make libs build_flags=-j8 | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Release | |
| run: | | |
| docker run --rm \ | |
| --user pony \ | |
| -v ${{ github.workspace }}:/home/pony/project \ | |
| -w /home/pony/project \ | |
| -e CLOUDSMITH_API_KEY=${{ secrets.CLOUDSMITH_API_KEY }} \ | |
| -e TRIPLE_OS=${{ matrix.triple-os }} \ | |
| ${{ matrix.image }} \ | |
| bash .ci-scripts/arm64-unknown-linux-release.bash | |
| x86_macos: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: macos-26-intel | |
| name: x86-64-apple-darwin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-x86-macos-26-intel-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-x86-macos-26-intel-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Install Cloudsmith | |
| run: pip3 install --break-system-packages --upgrade cloudsmith-cli | |
| - name: Release | |
| run: bash .ci-scripts/x86-64-release.bash | |
| env: | |
| CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
| TRIPLE_VENDOR: apple | |
| TRIPLE_OS: darwin | |
| arm64_macos: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: macos-26 | |
| name: arm64-apple-darwin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-arm64-macos-26-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: make libs build_flags=-j8 | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-arm64-macos-26-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Install Cloudsmith | |
| run: pip3 install --upgrade --break-system-packages cloudsmith-cli | |
| - name: Release | |
| run: bash .ci-scripts/arm64-apple-darwin-release.bash | |
| env: | |
| CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
| x86_64-windows: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: pwsh | |
| name: x86-64-pc-windows-msvc | |
| steps: | |
| - name: Disable Windows Defender | |
| run: Set-MpPreference -DisableRealtimeMonitoring $true | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Install Dependencies | |
| run: | | |
| function msys() { C:\msys64\usr\bin\bash.exe @('-lc') + @Args }; msys ' '; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-lldb'; msys 'pacman --noconfirm -Scc' | |
| python.exe -m pip install --upgrade cloudsmith-cli | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-windows-2025-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: .\make.ps1 -Command libs | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-windows-2025-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Configure | |
| run: .\make.ps1 -Command configure -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) | |
| - name: Build | |
| run: .\make.ps1 -Command build -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) | |
| - name: Install | |
| run: .\make.ps1 -Command install -Config Release -Prefix "build\install\release" | |
| - name: Package | |
| run: .\make.ps1 -Command package-x86-64 -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) | |
| - name: Upload | |
| run: $version = (Get-Content .\VERSION); cloudsmith push raw --version $version --api-key ${{ secrets.CLOUDSMITH_API_KEY }} --summary "Pony compiler" --description "https://github.com/ponylang/ponyc" ponylang/releases build\ponyc-x86-64-pc-windows-msvc.zip | |
| arm64-windows: | |
| needs: | |
| - pre-artefact-creation | |
| runs-on: windows-11-arm | |
| defaults: | |
| run: | |
| shell: pwsh | |
| name: arm64-pc-windows-msvc | |
| steps: | |
| - name: Disable Windows Defender | |
| run: Set-MpPreference -DisableRealtimeMonitoring $true | |
| - name: Checkout | |
| uses: actions/checkout@v6.0.2 | |
| - name: Install Dependencies | |
| run: | | |
| python.exe -m pip install --upgrade cloudsmith-cli | |
| - name: Restore Libs Cache | |
| id: restore-libs | |
| uses: actions/cache/restore@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-windows-11-arm-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Build Libs | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| run: .\make.ps1 -Command libs -Arch ARM64 | |
| - name: Save Libs Cache | |
| if: steps.restore-libs.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v5.0.3 | |
| with: | |
| path: | | |
| build/libs | |
| lib/llvm/src/compiler-rt/lib/builtins | |
| key: libs-windows-11-arm-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }} | |
| - name: Configure | |
| run: .\make.ps1 -Command configure -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) -Arch ARM64 | |
| - name: Build | |
| run: .\make.ps1 -Command build -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) | |
| - name: Install | |
| run: .\make.ps1 -Command install -Config Release -Prefix "build\install\release" | |
| - name: Package | |
| run: .\make.ps1 -Command package-arm64 -Config Release -Prefix "build\install\release" -Version (Get-Content .\VERSION) | |
| - name: Upload | |
| run: $version = (Get-Content .\VERSION); cloudsmith push raw --version $version --api-key ${{ secrets.CLOUDSMITH_API_KEY }} --summary "Pony compiler" --description "https://github.com/ponylang/ponyc" ponylang/releases build\ponyc-arm64-pc-windows-msvc.zip |