chore(ci): add dormant push-email notification workflow (#318) #618
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
| # SPDX-License-Identifier: MPL-2.0 | ||
|
Check failure on line 1 in .github/workflows/rust-ci.yml
|
||
| # Rust CI — thin wrapper calling the shared estate reusable in | ||
| # hyperpolymath/standards. Configure once, propagate everywhere. | ||
| # See: docs/CI-REUSABLE-WORKFLOWS.adoc in standards. | ||
| name: Rust CI | ||
| on: | ||
| push: | ||
| branches: [main, master] | ||
| pull_request: | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| jobs: | ||
| rust-ci: | ||
| uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@d135b05bfc647d0c0fbfedc7e80f37ea50f49236 | ||
| no-default-features: | ||
| name: Cargo build + test (ephapax-cli, --no-default-features) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| if: hashFiles('Cargo.toml') != '' | ||
| # Proves ephapax can be built and tested with zero git dep on the | ||
| # sibling `hyperpolymath/typed-wasm` repo. Enforces the estate | ||
| # architectural rule that typed-wasm must be removable from either | ||
| # language with no impact. See `src/ephapax-wasm/src/ownership.rs` | ||
| # for the in-tree codec that makes this possible. | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| - name: Install Rust toolchain | ||
| uses: dtolnay/rust-toolchain@67ef31d5b988238dd797d409d6f9574278e20537 # stable | ||
| with: | ||
| toolchain: stable # required when SHA-pinned (no rust-toolchain.toml in repo) | ||
| - name: Cache cargo registry and build | ||
| uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2 | ||
| with: | ||
| key: no-default-features | ||
| - name: Cargo build -p ephapax-cli --no-default-features | ||
| run: cargo build -p ephapax-cli --no-default-features | ||
| - name: Cargo test -p ephapax-cli --no-default-features | ||
| run: cargo test -p ephapax-cli --no-default-features | ||
| - name: Write summary | ||
| if: always() | ||
| run: | | ||
| echo "## --no-default-features build" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "Proves the typed-wasm-verify feature is genuinely optional:" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "ephapax-cli builds + tests with zero git dep on the" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "hyperpolymath/typed-wasm repo." >> "$GITHUB_STEP_SUMMARY" | ||
| wasm-validate: | ||
| name: wasm-tools validate (emitted modules) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| if: hashFiles('Cargo.toml') != '' | ||
| # Structurally validates every module ephapax emits for the fixture | ||
| # corpus (`just validate-wasm`), catching codegen that produces an | ||
| # invalid wasm binary before it can land. Mirrors the in-process | ||
| # wasmparser assertion in the wasm_e2e tests and the CLI's always-on | ||
| # self-validation floor. The recipe pins CARGO_INCREMENTAL=0 to dodge a | ||
| # known rustc-incremental ICE on ephapax-parser. | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| - name: Install Rust toolchain | ||
| uses: dtolnay/rust-toolchain@67ef31d5b988238dd797d409d6f9574278e20537 # stable | ||
| with: | ||
| toolchain: stable # required when SHA-pinned (no rust-toolchain.toml in repo) | ||
| - name: Cache cargo registry and build | ||
| uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2 | ||
| with: | ||
| key: wasm-validate | ||
| - name: Install just + wasm-tools | ||
| run: cargo install just wasm-tools --locked | ||
| - name: Validate emitted wasm (just validate-wasm) | ||
| run: just validate-wasm | ||
| - name: Write summary | ||
| if: always() | ||
| run: | | ||
| echo "## wasm-tools validate" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "Every module ephapax emits for the fixture corpus passes" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "wasm-tools validate (structural validity gate), including" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "the hypatia bridge.eph integration target." >> "$GITHUB_STEP_SUMMARY" | ||