diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 880c74b..6a6fcec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ permissions: jobs: build: - name: Build with rust ${{matrix.rust}} on ${{matrix.os == 'ubuntu' && 'Linux' || matrix.os == 'macos' && 'macOS' || matrix.os == 'windows' && 'Windows' || '???'}} + name: Test with rust ${{matrix.rust}} on ${{matrix.os == 'ubuntu' && 'Linux' || matrix.os == 'macos' && 'macOS' || matrix.os == 'windows' && 'Windows' || '???'}} runs-on: ${{matrix.os}}-latest strategy: fail-fast: false @@ -37,16 +37,16 @@ jobs: # The node doesn't seem to enjoy us sending a lot of requests concurrently. run: cargo test --all-features -- --test-threads=1 - test: - name: Test + lint: + name: Lint runs-on: ubuntu-latest - timeout-minutes: 30 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-python@v5 + - name: Install nightly toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: @@ -59,22 +59,32 @@ jobs: - uses: taiki-e/install-action@v2 # zizmor: ignore[ref-confusion] with: - tool: cargo-tarpaulin,cargo-rdme + tool: cargo-rdme - name: Check README is up-to-date - run: cargo +nightly rdme --check + run: cargo rdme --check + + coverage: + name: Coverage + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Install nightly toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + + - uses: taiki-e/install-action@v2 # zizmor: ignore[ref-confusion] + with: + tool: cargo-tarpaulin - name: Run tests with coverage run: RUST_BACKTRACE=1 cargo +nightly tarpaulin --out Xml --all-features --doc --tests - - name: Submit several transactions to chain - run: | - RUST_BACKTRACE=1 cargo +nightly run --example transaction_broadcast --all-features - RUST_BACKTRACE=1 cargo +nightly run --example contract_interaction --all-features - env: - TEST_TO_ADDRESS: ${{ secrets.TO_ADDRESS }} - TEST_MNEMONIC: ${{ secrets.MNEMONIC }} - - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 env: @@ -84,3 +94,25 @@ jobs: with: name: code-coverage-report path: cobertura.xml + + test-onchain: + name: Run chain-modifying examples + runs-on: ubuntu-latest + needs: [coverage, build, lint] + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Install nightly toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: stable + + - name: Submit several transactions to chain + run: | + RUST_BACKTRACE=1 cargo run --example transaction_broadcast --all-features + RUST_BACKTRACE=1 cargo run --example contract_interaction --all-features + env: + TEST_TO_ADDRESS: ${{ secrets.TO_ADDRESS }} + TEST_MNEMONIC: ${{ secrets.MNEMONIC }}