name: build
on:
push: { branches: [ '*' ] }
workflow_dispatch:
concurrency:
group: ${{ github.sha }}
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-latest # arm64
- ubuntu-24.04-arm # arm64
- ubuntu-latest # x64
- windows-11-arm # arm64
- windows-latest # x64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 512
fetch-tags: true
filter: 'tree:0'
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v5
with:
path: ~/.cargo
key: ${{ matrix.os }}-${{ runner.arch }}-${{ hashFiles('Cargo.lock') }}-cargo-home
- uses: actions/cache@v5
with:
path: target
key: ${{ matrix.os }}-${{ runner.arch }}-${{ hashFiles('Cargo.lock') }}-cargo-target
- run: cargo build --workspace --verbose --all-features
- if: runner.os == 'Windows'
working-directory: windows
run: |
$env:RADICLE_VERSION = "$(.\version.ps1)"
echo $env:RADICLE_VERSION
dotnet build
- if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
name: radicle-installer-${{ runner.arch }}-${{ github.sha }}-${{ github.job }}
path: windows/bin/*/*.msi
- if: runner.os != 'Windows'
run: cargo test --workspace --verbose --all-features -- --nocapture
- if: runner.os == 'Windows'
run: cargo test --workspace --verbose --all-features -- --nocapture
env:
RUST_BACKTRACE: full
RUST_LOG: trace
RUST_TEST_THREADS: 1