Skip to content

Add release job

Add release job #6

Workflow file for this run

name: Release
on:
push:
branches: ["main"]
tags: ["v*"]
jobs:
macos_build:
name: MacOS (${{ matrix.OS }})
strategy:
fail-fast: true
matrix:
OS: ["macos-12", "macos-14"]
runs-on: ${{ matrix.OS }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'sbt'
- name: Install SBT
run: brew install sbt
- name: Build the binary
run: sbt buildPlatformBinary
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
path: out/release/*
name: ${{ matrix.os }}-binaries
if-no-files-found: error
linux_build:
name: Linux
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'sbt'
- name: Build the binary
run: sbt buildPlatformBinary
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
path: out/release/*
name: linux-binaries
if-no-files-found: error
windows_build:
name: Windows
strategy:
fail-fast: false
runs-on: windows-2019
env:
LLVM_BIN: 'C:\Program Files\LLVM\bin'
LLVM_VERSION: "17.0.6"
steps:
# This step is important to make sure scalafmt
# checks don't fail
- name: Setup git config
run: git config --global core.autocrlf false
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'sbt'
# See https://github.com/scala-native/scala-native/blob/master/.github/actions/windows-setup-env/action.yml#L14 SN_RELE
# for details
- name: Configure Pagefile
uses: al-cheb/[email protected]
with:
minimum-size: 4GB
maximum-size: 16GB
- run: clang -v
shell: cmd
- name: Install clang and SBT
shell: pwsh
run: |
choco install llvm --version="$Env:LLVM_VERSION" --allow-downgrade
choco install sbt --version=1.10.0
clang --version
- name: Build binary (windows)
run: sbt buildPlatformBinary
shell: cmd
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
path: out/release/*
name: windows-binaries
if-no-files-found: error
release:
if: startsWith(github.ref, 'refs/tags/v') || (github.ref == 'refs/heads/main')
needs: [linux_build, windows_build, macos_build]
name: Upload binaries to release
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download binaries
uses: actions/download-artifact@v4
id: download
with:
path: binaries
- name: List downloaded binaries
run: ls -R binaries
- name: Upload release binaries
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: "${{steps.download.outputs.download-path}}/**/*"