Some checks failed
API and SemVer surface / api-surface (push) Has been cancelled
Native release artifact audit / audit (push) Has been cancelled
Native code generation / deterministic (push) Has been cancelled
Concurrency and resource soak audit / soak (push) Has been cancelled
Documentation / documentation (push) Has been cancelled
performance evidence / audit (push) Has been cancelled
First release candidate / non-fuzz-release-gate (push) Has been cancelled
Release platform and feature matrix / audit (push) Has been cancelled
Release platform and feature matrix / matrix (false, linux-stable-minimal, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, macos-stable-portable, x86_64-apple-darwin, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (false, windows-stable-portable, x86_64-pc-windows-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-msrv-portable, x86_64-unknown-linux-gnu, 1.96.0) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-default, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-features, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Release platform and feature matrix / matrix (true, linux-stable-release-surface, x86_64-unknown-linux-gnu, stable) (push) Has been cancelled
Dependency and supply-chain audit / audit (push) Has been cancelled
104 lines
4.3 KiB
YAML
104 lines
4.3 KiB
YAML
name: First release candidate
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- ".gitea/workflows/release-candidate.yml"
|
|
- "ci/release-candidate-policy.json"
|
|
- "ci/evidence/**"
|
|
- "docs/release-candidate.md"
|
|
- "CHANGELOG.md"
|
|
- "release/**"
|
|
- "api/**"
|
|
- "programs/**"
|
|
- "tests/**"
|
|
- "tools/**"
|
|
- "crates/**"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
pull_request:
|
|
paths:
|
|
- ".gitea/workflows/release-candidate.yml"
|
|
- "ci/release-candidate-policy.json"
|
|
- "ci/evidence/**"
|
|
- "docs/release-candidate.md"
|
|
- "CHANGELOG.md"
|
|
- "release/**"
|
|
- "api/**"
|
|
- "programs/**"
|
|
- "tests/**"
|
|
- "tools/**"
|
|
- "crates/**"
|
|
- "Cargo.toml"
|
|
- "Cargo.lock"
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
CARGO_BUILD_JOBS: 1
|
|
CARGO_INCREMENTAL: 0
|
|
CARGO_PROFILE_DEV_DEBUG: 0
|
|
CARGO_PROFILE_TEST_DEBUG: 0
|
|
FORCE_SKIA_BINARIES_DOWNLOAD: 1
|
|
OPENJPEG_PREFIX: /tmp/metacrate-openjpeg-release-candidate
|
|
PKG_CONFIG_PATH: /tmp/metacrate-openjpeg-release-candidate/lib/pkgconfig
|
|
LD_LIBRARY_PATH: /tmp/metacrate-openjpeg-release-candidate/lib
|
|
RUSTDOCFLAGS: -D warnings
|
|
|
|
jobs:
|
|
non-fuzz-release-gate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: 1.97.1
|
|
components: rustfmt, clippy
|
|
- name: Install every Linux release prerequisite
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install --yes build-essential clang cmake curl ninja-build pkg-config python3 libfontconfig1-dev libfreetype6-dev libopus-dev libasound2-dev
|
|
tools/install_openjpeg_2_5_4.sh "$OPENJPEG_PREFIX"
|
|
- name: Record source identity without a shipped helper
|
|
run: echo "METACRATE_RUST_COMMIT=$(git rev-parse --verify HEAD)" >>"$GITHUB_ENV"
|
|
- name: Verify generated surfaces, mappings, parity, and milestone inventories
|
|
run: |
|
|
python3 tools/generate_rust_mapping.py --check
|
|
python3 tools/generate_api_shims.py --check
|
|
python3 tools/check_api_coverage.py
|
|
python3 tools/check_test_parity.py
|
|
python3 tools/generate_lsl_tables.py --check
|
|
python3 tools/check_milestone_09.py
|
|
python3 tools/check_milestone_10.py
|
|
- name: Format, compile, test, lint, and document the complete workspace
|
|
run: |
|
|
cargo fmt --all -- --check
|
|
cargo check --workspace --all-targets --all-features --locked -j 1
|
|
cargo test --workspace --all-features --locked -j 1
|
|
cargo clippy --workspace --all-targets --all-features --locked -j 1 -- -D warnings
|
|
cargo doc --workspace --all-features --no-deps --locked -j 1
|
|
- name: Compile downstream and SemVer consumers
|
|
run: |
|
|
cargo check --locked --manifest-path tests/api-compile/Cargo.toml
|
|
cargo run --locked --manifest-path tests/semver-port/Cargo.toml
|
|
- name: Exercise all offline program and fake-grid behavior
|
|
run: |
|
|
cargo test --locked -p libremetaverse-programs --tests -j 1
|
|
cargo run --locked -p libremetaverse-programs --bin live-grid-smoke -- --audit-only
|
|
cargo run --locked -p libremetaverse-programs --bin live-grid-smoke -- --fake --evidence artifacts/release-candidate/fake-grid-smoke.jsonl
|
|
- name: Revalidate all checked-in audits and checksums
|
|
run: |
|
|
cargo run --locked -p metacrate-ci-matrix -- audit
|
|
cargo run --locked -p metacrate-ci-matrix -- documentation-audit --evidence artifacts/release-candidate/documentation.json
|
|
cargo run --locked -p metacrate-ci-matrix -- dependency-audit --evidence artifacts/release-candidate/dependency.json
|
|
cargo run --locked -p metacrate-ci-matrix -- provenance-audit --evidence artifacts/release-candidate/provenance.json
|
|
sha256sum --check release/SHA256SUMS
|
|
- name: Enforce the aggregate non-fuzz release-candidate decision
|
|
run: cargo run --locked -p metacrate-ci-matrix -- release-candidate-audit --evidence artifacts/release-candidate/status.json
|
|
- name: Upload release-candidate evidence, including failures
|
|
if: always()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: metacrate-0.0.1-release-candidate
|
|
path: artifacts/release-candidate/
|
|
if-no-files-found: error
|