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@v4 with: path: ~/.cargo key: ${{ matrix.os }}-${{ runner.arch }}-${{ hashFiles('Cargo.lock') }}-cargo-home - uses: actions/cache@v4 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