name: rust on: push: branches: [main] paths: - 'rust/**' - .github/workflows/rust.yml - '!*.md' pull_request: branches: [main] paths: - 'rust/**' - .github/workflows/rust.yml - '!*.md' # Support for merge queues merge_group: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: concurrency: group: rust-${{ github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always RUST_BACKTRACE: full defaults: run: working-directory: ./rust jobs: test-rs: runs-on: larger-runner steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal - name: rust cache uses: Swatinem/rust-cache@v2 with: prefix-key: "v3-rust" workspaces: | ./rust - name: Free disk space run: | # Based on https://github.com/actions/runner-images/issues/2840#issuecomment-790492173 sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" - name: Run tests run: cargo test lint-rs: runs-on: larger-runner steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal components: rustfmt, clippy target: wasm32-unknown-unknown - name: rust cache uses: Swatinem/rust-cache@v2 with: prefix-key: "v3-rust" workspaces: | ./rust - name: Free disk space run: | # Based on https://github.com/actions/runner-images/issues/2840#issuecomment-790492173 sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" - name: Check run: cargo check --release --all-features --all-targets - name: Rustfmt run: cargo fmt --all -- --check - name: Clippy run: cargo clippy -- -D warnings - name: Setup WASM run: rustup target add wasm32-unknown-unknown - name: Check WASM run: cargo check --release -p hyperlane-core --features=strum,test-utils --target wasm32-unknown-unknown