Skip to content

Update VERSION in preparation for 0.62.1 release #40

Update VERSION in preparation for 0.62.1 release

Update VERSION in preparation for 0.62.1 release #40

Workflow file for this run

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