Skip to content

CI: build for many platforms #56

CI: build for many platforms

CI: build for many platforms #56

Workflow file for this run

# inspired by https://github.com/shssoichiro/oxipng/blob/15ecc9ed00199f1fbfe0989d67a43ff3e6faff6a/.github/workflows/oxipng.yml
name: build
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
name: build
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
target-apt-arch: amd64
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
target-apt-arch: arm64
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: i686-pc-windows-msvc
os: windows-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: aarch64-apple-darwin
os: macos-latest
env:
PROJECT_NAME: autocrap
CARGO_BUILD_TARGET: ${{ matrix.platform.target }}
CARGO_TERM_COLOR: always
MACOSX_DEPLOYMENT_TARGET: 10.12
RUSTFLAGS:
steps:
- name: checkout
uses: actions/checkout@v4
- name: cache apt packages
if: startsWith(matrix.platform.os, 'ubuntu')
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libasound2-dev
version: 1.0
- name: build
uses: houseabsolute/actions-rust-cross@v0
with:
command: build
target: ${{ matrix.platform.target }}
args: "--release --verbose"
strip: true
- name: upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.PROJECT_NAME }}-${{ matrix.platform.target }}
path: |
target/${{ matrix.platform.target }}/release/${{ env.PROJECT_NAME }}
target/${{ matrix.platform.target }}/release/${{ env.PROJECT_NAME }}.exe