name: Rust CI on: push: branches: [ main, develop ] paths: - 'near/**' pull_request: paths: - 'near/**' jobs: lint: runs-on: warp-ubuntu-2404-x64-16x strategy: matrix: component: [near] # Will be expanded with more components later steps: - name: Setup SSH uses: webfactory/ssh-agent@v0.7.0 with: ssh-private-key: | ${{ secrets.SSH_BRIDGE_INDEXER }} ${{ secrets.SSH_BOREALIS }} - name: Checkout code uses: actions/checkout@v4 - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: toolchain: 1.96.0 components: clippy, rustfmt target: wasm32-unknown-unknown - name: Cache Rust dependencies uses: Swatinem/rust-cache@v2 with: cache-provider: warpbuild shared-key: "rust-lint" workspaces: | near cache-on-failure: true cache-all-crates: true - name: Install cargo-near run: | curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - name: Run clippy run: make clippy-${{ matrix.component }} - name: Run fmt run: make fmt-${{ matrix.component }} build-and-test: runs-on: warp-ubuntu-2404-x64-16x steps: - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y liblzma-dev - name: Setup SSH uses: webfactory/ssh-agent@v0.7.0 with: ssh-private-key: | ${{ secrets.SSH_BRIDGE_INDEXER }} ${{ secrets.SSH_BOREALIS }} - name: Checkout code uses: actions/checkout@v4 - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: toolchain: 1.96.0 target: wasm32-unknown-unknown - name: Cache Rust dependencies uses: Swatinem/rust-cache@v2 with: cache-provider: warpbuild shared-key: "rust-build-test" prefix-key: "v1-rust" workspaces: | near cache-on-failure: true cache-all-crates: true - name: Install cargo-near run: | curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh - name: Install nextest uses: taiki-e/install-action@v2 with: tool: nextest - name: Rust tests run: make rust-run-tests