v0.14.5 #80
Workflow file for this run
This file contains 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: Build Sage Executables | |
on: | |
release: | |
types: [created] | |
jobs: | |
build_ubuntu: | |
name: Build Sage for Linux | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl, aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Get Cargo toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Build Sage | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --target ${{ matrix.target }} | |
use-cross: true | |
- name: Build archive | |
shell: bash | |
run: | | |
sage_version=${{ github.ref_name }} | |
staging="sage-$sage_version-${{ matrix.target }}" | |
mkdir -p "$staging" | |
cp {README.md,LICENSE} "$staging/" | |
cp "target/${{ matrix.target }}/release/sage" "$staging/" | |
tar czf "$staging.tar.gz" "$staging" | |
echo "ASSET=$staging.tar.gz" >> $GITHUB_ENV | |
- name: Upload executable to release | |
uses: ./.github/workflows/upload_artifacts | |
with: | |
name: ${{ env.ASSET }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: ${{ env.ASSET }} | |
build_windows: | |
name: Build Sage for Windows | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
include: | |
- name: Windows 64-bits | |
target: x86_64-pc-windows-msvc | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Get Cargo toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Build Sage | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --target ${{ matrix.target }} | |
- name: Build archive | |
shell: bash | |
run: | | |
sage_version=${{ github.ref_name }} | |
staging="sage-$sage_version-${{ matrix.target }}" | |
mkdir -p "$staging" | |
cp {README.md,DOCS.md,LICENSE} "$staging/" | |
cp "target/${{ matrix.target }}/release/sage.exe" "$staging/" | |
7z a "$staging.zip" "$staging" | |
echo "ASSET=$staging.zip" >> $GITHUB_ENV | |
- name: Upload executable to release | |
uses: ./.github/workflows/upload_artifacts | |
with: | |
name: ${{ env.ASSET }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: ${{ env.ASSET }} | |
build_macos: | |
name: Build Sage for MacOS | |
strategy: | |
matrix: | |
include: | |
- name: MacOS (Intel) | |
target: x86_64-apple-darwin | |
- name: MacOS (Apple Silicon) | |
target: aarch64-apple-darwin | |
runs-on: macos-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Get Cargo toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
override: true | |
- name: Build Sage | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --target ${{ matrix.target }} | |
- name: Build archive | |
shell: bash | |
run: | | |
sage_version=${{ github.ref_name }} | |
staging="sage-$sage_version-${{ matrix.target }}" | |
mkdir -p "$staging" | |
cp {README.md,LICENSE} "$staging/" | |
cp "target/${{ matrix.target }}/release/sage" "$staging/" | |
tar czf "$staging.tar.gz" "$staging" | |
echo "ASSET=$staging.tar.gz" >> $GITHUB_ENV | |
- name: Upload to Release | |
uses: ./.github/workflows/upload_artifacts | |
with: | |
name: $${{ env.ASSET }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: ${{ env.ASSET }} |