Skip to content

build(deps): bump the cargo-minor group across 1 directory with 15 updates #1630

build(deps): bump the cargo-minor group across 1 directory with 15 updates

build(deps): bump the cargo-minor group across 1 directory with 15 updates #1630

Workflow file for this run

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