sdk-go/stress: refuse CreateUser under RFC-27 enforcement and name the proof errors #9811
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: rust | |
| on: | |
| push: | |
| branches: [ main, 'hotfix/**' ] | |
| pull_request: | |
| jobs: | |
| rust-build: | |
| runs-on: ubuntu-24.04-16c-64gb | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install agave solana tools | |
| run: | | |
| sh -c "$(curl -sSfL https://release.anza.xyz/v3.0.4/install)" | |
| echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
| - run: make rust-build | |
| rust-lint: | |
| runs-on: ubuntu-24.04-16c-64gb | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| with: | |
| components: clippy, rustfmt | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: make rust-lint | |
| rust-test: | |
| runs-on: ubuntu-24.04-16c-64gb | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install agave solana tools | |
| run: | | |
| sh -c "$(curl -sSfL https://release.anza.xyz/v3.0.4/install)" | |
| echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
| - run: make rust-test | |
| rust-validator-test: | |
| runs-on: ubuntu-24.04-16c-64gb | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install agave solana tools | |
| run: | | |
| sh -c "$(curl -sSfL https://release.anza.xyz/v3.0.4/install)" | |
| echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
| - run: make rust-validator-test | |
| # The doublezero CLI ships as a static musl binary so it loads on any Linux | |
| # regardless of the host glibc version. Build it for the musl target and assert | |
| # the result is fully static. | |
| rust-cli-static: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| with: | |
| targets: x86_64-unknown-linux-musl | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install musl toolchain | |
| run: sudo apt-get update && sudo apt-get install -y musl-tools | |
| - name: Build CLI for musl and assert it is statically linked | |
| env: | |
| CC_x86_64_unknown_linux_musl: musl-gcc | |
| CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER: musl-gcc | |
| run: | | |
| cargo build --release -p doublezero --target x86_64-unknown-linux-musl | |
| bin=target/x86_64-unknown-linux-musl/release/doublezero | |
| file "$bin" | |
| if file "$bin" | grep -qE "statically linked|static-pie linked"; then | |
| echo "OK: $bin is statically linked" | |
| else | |
| echo "::error::doublezero CLI is not statically linked" | |
| exit 1 | |
| fi | |
| # The release bump runs `cargo update --workspace`, which can silently rebind | |
| # members onto a different locked minor. | |
| release-bump-dry-run: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.97.1 | |
| - name: Dry-run the release version bump | |
| run: | | |
| set -euo pipefail | |
| PREV=$(grep -m1 '^version = ' Cargo.toml | sed 's/version = "\(.*\)"/\1/') | |
| NEXT=$(echo "$PREV" | awk -F. '{print $1"."$2+1".0"}') | |
| echo "Dry-running the release bump $PREV -> $NEXT; the result is discarded." | |
| if ! ./scripts/release/bump-version.sh "$NEXT"; then | |
| echo "Fix, if the failure lists Cargo.lock lines: either cargo update --workspace rebound a workspace dependency onto a different version, so pin the offending requirement in [workspace.dependencies] to its locked minor (0.13, not a bare 0); or a Cargo.toml dependency change landed without its regenerated lock, so run cargo update --workspace and commit the Cargo.lock. The guard lives in scripts/release/bump-version.sh." | |
| echo "If neither looks related to your changes, check this job on main: a loose requirement plus a PR merged since your base can rebind the tree without either PR failing on its own." | |
| echo "::error::The release version bump fails on this tree, so the next release would fail the same way. The cause and the fix are in this job's log." | |
| exit 1 | |
| fi |