name: ci-build on: pull_request: paths: - 'clients/**' - 'common/**' - 'explorer-api/**' - 'gateway/**' - 'integrations/**' - 'nym-api/**' - 'nym-credential-proxy/**' - 'nym-network-monitor/**' - 'nym-node/**' - 'nym-node-status-api/**' - 'nym-outfox/**' - 'nym-validator-rewarder/**' - 'nyx-chain-watcher/**' - 'sdk/ffi/**' - 'sdk/rust/**' - 'service-providers/**' - 'nym-browser-extension/storage/**' - 'tools/**' - 'wasm/**' - 'Cargo.toml' - 'Cargo.lock' - '.github/workflows/ci-build.yml' workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: os: [ arc-ubuntu-20.04, custom-windows-11, custom-runner-mac-m1 ] runs-on: ${{ matrix.os }} env: CARGO_TERM_COLOR: always IPINFO_API_TOKEN: ${{ secrets.IPINFO_API_TOKEN }} steps: - name: Install Dependencies (Linux) run: sudo apt-get update && sudo apt-get -y install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libudev-dev squashfs-tools protobuf-compiler continue-on-error: true if: contains(matrix.os, 'ubuntu') - name: Check out repository code uses: actions/checkout@v4 - name: Install rust toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - name: Check formatting uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - name: Clippy uses: actions-rs/cargo@v1 with: command: clippy args: --workspace --all-targets -- -D warnings - name: Build all binaries uses: actions-rs/cargo@v1 with: command: build - name: Build all examples if: contains(matrix.os, 'ubuntu') uses: actions-rs/cargo@v1 with: command: build args: --workspace --examples - name: Run all tests if: contains(matrix.os, 'ubuntu') uses: actions-rs/cargo@v1 with: command: test args: --workspace - name: Run expensive tests if: (github.ref == 'refs/heads/develop' || github.event.pull_request.base.ref == 'develop' || github.event.pull_request.base.ref == 'master') && contains(matrix.os, 'ubuntu') uses: actions-rs/cargo@v1 with: command: test args: --workspace -- --ignored