Skip to content

Document binary releases #6

Document binary releases

Document binary releases #6

Workflow file for this run

name: Ahead-of-time compile & publish
on:
push:
branches: [ "main" ]
tags: ["v*"]
jobs:
aot-compile:
name: AOT compile on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-14, windows-2022, ubuntu-24.04, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '23'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
- name: Setup SBT
uses: sbt/setup-sbt@v1
- name: Build native image
run: sbt GraalVMNativeImage/packageBin
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: jelly-cli-${{ matrix.os }}
path: target/graalvm-native-image/*
publish:
runs-on: ubuntu-latest
needs: aot-compile
steps:
- uses: actions/download-artifact@v4
- name: Rename binaries
run: |
mv jelly-cli-macos-14/jelly-cli jelly-cli-mac-arm64
mv jelly-cli-ubuntu-24.04/jelly-cli jelly-cli-linux-x86_64
mv jelly-cli-ubuntu-24.04-arm/jelly-cli jelly-cli-linux-arm64
mv jelly-cli-windows-2022/jelly-cli.exe jelly-cli-windows-x86_64.exe
- name: Upload binaries (pre-release)
if: github.ref == 'refs/heads/main'
uses: ncipollo/[email protected]
with:
allowUpdates: true
prerelease: true
draft: false
omitDraftDuringUpdate: false
makeLatest: false
tag: dev
name: "Development build"
artifacts: jelly-cli-*
generateReleaseNotes: true
- name: Upload binaries (tagged release)
if: github.ref != 'refs/heads/main'
uses: ncipollo/[email protected]
with:
prerelease: false
draft: false
makeLatest: true
tag: "${{ github.ref_name }}"
name: "${{ github.ref_name }}"
artifacts: jelly-cli-*
generateReleaseNotes: true