Release v17.0.0 rc.2 (#1662) #176
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: Guide snippets (local network) | |
| # Executes the docs guide snippets (examples/guides/*.ts) on every PR | |
| # against a local stellar/quickstart network, so a change that breaks the | |
| # documented flows at runtime cannot merge. The snippets keep their real | |
| # testnet URLs and passphrase; config/guides-local-setup.ts redirects them | |
| # to the service container at the transport layer. Depends on nothing | |
| # outside the runner, so it is reliable enough to be a required check. | |
| # Real-testnet drift (Horizon deployments, friendbot changes, protocol | |
| # upgrades) is only checked at release time: `preversion` runs | |
| # `pnpm test:guides` against real testnet. Bump this workflow's image pin | |
| # periodically so the local network tracks what testnet actually runs. | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| permissions: | |
| contents: read | |
| # Rapid pushes to a PR would otherwise stack redundant quickstart runs. | |
| concurrency: | |
| group: guides-pr-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| run_guides_local: | |
| # Stable, short status-check context: this name is (to be) listed in the | |
| # protect-main ruleset as a required check. Renaming it strands every PR | |
| # on an "Expected" check (see the build_and_test (20) placeholder in | |
| # tests.yml for how that ends). Never add a paths: filter to this | |
| # workflow either — a required check skipped by a path filter blocks | |
| # merge forever. | |
| name: guides-local | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| services: | |
| quickstart: | |
| # Protocol 27 to match what the SDK and the guides document (the | |
| # protocol-27 Soroban auth guide depends on it). This digest is | |
| # deliberately NEWER than e2e.yml's pin, whose core only supports | |
| # protocol 25 — when bumping either workflow's image, check the | |
| # other and confirm PROTOCOL_VERSION is still <= the image's | |
| # core_supported_protocol_version. | |
| image: stellar/quickstart:testing@sha256:3b98cc624a235215bbb2dedd18bd3ec3a498053b6b6533533b6a0d94354a7885 | |
| ports: | |
| - 8000:8000 | |
| env: | |
| ENABLE_LOGS: true | |
| NETWORK: local | |
| ENABLE_SOROBAN_RPC: true | |
| PROTOCOL_VERSION: 27 | |
| options: >- | |
| --health-cmd "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\"}' && | |
| curl --no-progress-meter \"http://localhost:8000/friendbot\" | grep | |
| '\"invalid_field\": \"addr\"'" --health-interval 10s --health-timeout | |
| 5s --health-retries 50 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Install Node (22.x) | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22.x" | |
| cache: pnpm | |
| cache-dependency-path: pnpm-lock.yaml | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Install Dependencies | |
| run: pnpm install --frozen-lockfile --network-concurrency 1 | |
| - name: Run guide snippets against local network | |
| run: pnpm run test:guides:local |