Skip to content

Add SLBIT v2 luminous explorer (#50) #108

Add SLBIT v2 luminous explorer (#50)

Add SLBIT v2 luminous explorer (#50) #108

Workflow file for this run

name: powerhouse-ci
on:
push:
branches: ["main", "master"]
pull_request:
branches: ["main", "master"]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy,rustfmt
- name: Terraform toolchain
uses: hashicorp/setup-terraform@v4
- name: Cache
uses: Swatinem/rust-cache@v2
- name: Format
run: cargo fmt --check
- name: Release version and naming consistency
run: python3 scripts/check_release_consistency.py
- name: Operational configuration
run: |
bash -n \
scripts/deploy_rpc_cluster.sh \
scripts/deploy_monitoring_stack.sh \
scripts/install_reliability_campaign.sh \
scripts/provision_digitalocean_rpc.sh \
infra/ops/alert.sh
python3 -m py_compile \
scripts/check_release_consistency.py \
scripts/check_rustdoc_links.py \
scripts/rpc_load_test.py \
scripts/test_reliability_campaign.py \
scripts/test_observatory_contract.py \
scripts/test_observer_intake.py \
scripts/test_observer_registry.py \
scripts/test_status_registry.py \
scripts/test_validator_registry.py \
infra/ops/healthcheck.py \
infra/monitoring/alert_receiver.py \
infra/monitoring/observer_intake.py \
infra/monitoring/observer_registry.py \
infra/monitoring/reliability_campaign.py \
infra/monitoring/status_api.py \
infra/monitoring/validator_registry.py
jq empty configs/network.json contrib/grafana/mfenx_powerhouse_dashboard.json
terraform -chdir=infra/terraform/digitalocean fmt -check
terraform -chdir=infra/terraform/digitalocean init -backend=false
terraform -chdir=infra/terraform/digitalocean validate
- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Documentation
env:
RUSTDOCFLAGS: -D warnings
run: |
cargo doc --all-features --no-deps
python3 scripts/check_rustdoc_links.py
- name: Test default targets
run: cargo test --all-targets --locked
- name: Test network targets
run: cargo test --all-targets --features net --locked
- name: CLI contract tests
run: bash scripts/test_cli.sh
- name: RPC cluster bundle tests
run: python3 scripts/test_generate_rpc_cluster.py
- name: Signed validator registry
run: |
python3 scripts/test_validator_registry.py
python3 scripts/test_observer_registry.py
python3 scripts/test_status_registry.py
python3 scripts/test_observer_intake.py
python3 scripts/test_reliability_campaign.py
- name: DigitalOcean provisioning contract
run: scripts/test_digitalocean_provision.sh
- name: RPC publication-gate tests
run: python3 scripts/test_rpc_check.py
- name: Native RPC replica finality
run: scripts/test_native_rpc_cluster.sh
- name: Reproduce sparse conformance vectors
run: |
cargo run --example conformance_vectors
git diff --exit-code -- conformance/v1
- name: Reproduce PHA and Rootprint conformance vectors
run: |
cargo run --example pha_conformance_vectors
git diff --exit-code -- \
conformance/pha-v1 \
publicpower/artifacts/rootprint-valid.json
- name: Reproduce identity conformance vectors
run: |
cargo run --example identity_conformance_vectors
git diff --exit-code -- conformance/identity-v1
- name: Reproduce slbit Observatory conformance vectors
run: |
cargo run --example slbit_conformance_vectors
git diff --exit-code -- \
conformance/slbit-v1 \
publicpower/artifacts/luminous-valid.json
- name: Cross-language PHA and Rootprint verification
run: PYTHONPATH=sdk/python python3 -m unittest discover -s sdk/python/tests -v
- name: Large-domain examples
run: |
cargo run --release --example sextillion_verify
cargo run --release --example hyperscale_affine
cargo run --release --example sparse_record
cargo run --release --example committed_workload
- name: Cross-language sparse verification
run: |
python3 scripts/verify_sparse_certificate.py target/power_house_sparse_record.phsp
python3 scripts/verify_sparse_certificate.py \
target/external_interaction_model.phcp \
--polynomial target/external_interaction_model.phsm
- name: Sparse verifier conformance and mutation tests
run: python3 scripts/test_sparse_verifier.py
- name: Browser artifact stream regression
run: |
node --check publicpower/app.js
node --check publicpower/campaign.js
node scripts/test_observatory_stream.mjs
python3 scripts/test_observatory_contract.py
- name: Soundness budget checks
run: |
python3 scripts/soundness_budget.py
python3 scripts/soundness_budget.py \
--field 18446744073709551557 \
--repetitions 3