Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
heartwood .github workflows build.yml
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