build(deps): bump the cargo-minor group across 1 directory with 15 updates #1630
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: RPC Tests | |
| permissions: | |
| contents: read | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [main, release/**] | |
| pull_request: | |
| paths-ignore: | |
| - "docs/site/**" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| env: | |
| SCCACHE_GHA_ENABLED: "true" | |
| RUSTC_WRAPPER: "sccache" | |
| PKG_CONFIG_PATH: /usr/lib/pkgconfig | |
| CI_CACHE: "/tmp/.cache" | |
| CI_BUILD: "--locked" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libdbus-1-dev pkg-config libudev-dev | |
| - run: rustup update | |
| - run: rustup target add wasm32v1-none | |
| - uses: taiki-e/install-action@just | |
| - uses: taiki-e/install-action@nextest | |
| - uses: cargo-bins/cargo-binstall@main | |
| - uses: stellar/stellar-cli@v27.0.0 | |
| - uses: mozilla-actions/sccache-action@v0.0.10 | |
| - run: just build | |
| - run: just build-cli-test-contracts | |
| - name: Create nextest archive | |
| run: cargo nextest archive --archive-file nextest-archive.tar.zst --package stellar-scaffold-cli --package stellar-scaffold-reporter --features integration-tests | |
| - name: Package runtime artifacts | |
| run: | | |
| tar -cf - \ | |
| target/debug/stellar-scaffold \ | |
| target/debug/stellar-scaffold-reporter \ | |
| crates/stellar-scaffold-test/fixtures/soroban-init-boilerplate/target/stellar/local/ \ | |
| | zstd -1 -o runtime-artifacts.tar.zst | |
| - name: Upload nextest archive | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: nextest-archive | |
| path: nextest-archive.tar.zst | |
| retention-days: 1 | |
| - name: Upload runtime artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: runtime-artifacts | |
| path: runtime-artifacts.tar.zst | |
| retention-days: 1 | |
| test: | |
| name: test ${{ matrix.name }} | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: scaffold-cli (build_clients) | |
| filter: "test-integration-scaffold-build-clients" | |
| - name: scaffold-cli (features) | |
| filter: "test-integration-scaffold-features" | |
| - name: scaffold-cli (examples 1-14) | |
| filter: "test-integration-scaffold-examples-1" | |
| - name: scaffold-cli (examples 15-27) | |
| filter: "test-integration-scaffold-examples-2" | |
| - name: reporter | |
| filter: "test-integration-reporter" | |
| env: | |
| STELLAR_RPC_URL: http://localhost:8000/soroban/rpc | |
| STELLAR_NETWORK_PASSPHRASE: "Standalone Network ; February 2017" | |
| STELLAR_ACCOUNT: default | |
| STELLAR_CONTRACT_ID: core | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: taiki-e/install-action@just | |
| - uses: taiki-e/install-action@nextest | |
| - uses: stellar/stellar-cli@v27.0.0 | |
| # Start the local network through the CLI itself — the same path | |
| # `stellar scaffold build` drives for users — so the suite validates the | |
| # real plumbing. Without an explicit protocol, quickstart's local network | |
| # arms its baked-in default (p25) and p27 contracts fail transaction | |
| # simulation on deploy. | |
| - name: Start local Stellar network | |
| run: | | |
| # Single source of truth: derive the protocol from the stellar-cli pin | |
| # in Cargo.toml — the same value build.rs bakes into the CLI binary. | |
| PROTOCOL_VERSION=$(sed -n 's/.*stellar-cli = .*version = "\([0-9]*\).*/\1/p' Cargo.toml | head -1) | |
| if [ -z "$PROTOCOL_VERSION" ]; then | |
| echo "Could not derive protocol version from stellar-cli pin in Cargo.toml" >&2 | |
| exit 1 | |
| fi | |
| echo "Starting local network at protocol $PROTOCOL_VERSION" | |
| stellar container start local --protocol-version "$PROTOCOL_VERSION" | |
| echo "Waiting for RPC + friendbot to become healthy..." | |
| for _ in $(seq 1 50); do | |
| if curl --no-progress-meter --fail-with-body -X POST "http://localhost:8000/soroban/rpc" \ | |
| -H 'Content-Type: application/json' \ | |
| -d '{"jsonrpc":"2.0","id":8675309,"method":"getNetwork"}' >/dev/null 2>&1 \ | |
| && curl --no-progress-meter "http://localhost:8000/friendbot" 2>/dev/null \ | |
| | grep -q '"invalid_field": "addr"'; then | |
| echo "Local network healthy." | |
| exit 0 | |
| fi | |
| sleep 2 | |
| done | |
| echo "Local network failed to become healthy in time." >&2 | |
| docker logs stellar --tail 100 || true | |
| exit 1 | |
| - name: Download nextest archive | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: nextest-archive | |
| - name: Download runtime artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: runtime-artifacts | |
| - name: Extract runtime artifacts | |
| run: zstd -d runtime-artifacts.tar.zst --stdout | tar xf - | |
| - run: stellar keys generate default --fund | |
| - name: Extract nextest archive | |
| run: | | |
| mkdir -p /tmp/nextest-run | |
| cargo nextest run --archive-file nextest-archive.tar.zst --extract-to /tmp/nextest-run --workspace-remap . --no-run | |
| cp -a /tmp/nextest-run/target/* target/ | |
| # If this PR's branch name also exists on the UI monorepo, point the | |
| # degit-based tests at that branch so coordinated cross-repo changes can | |
| # go green before merging. | |
| - name: Resolve UI repo ref | |
| run: | | |
| REF="${{ github.head_ref }}" | |
| if [ -n "$REF" ] && git ls-remote --exit-code --heads \ | |
| https://github.com/stellar-scaffold/ui "$REF" >/dev/null 2>&1; then | |
| echo "STELLAR_SCAFFOLD_UI_REPO=stellar-scaffold/ui#$REF" >> "$GITHUB_ENV" | |
| echo "Pinned UI monorepo -> $REF" | |
| else | |
| echo "Using default UI monorepo (main)" | |
| fi | |
| - name: Run tests | |
| run: just ${{ matrix.filter }} true |