arnaucube
arnaucube/sonobePublic Self-hosted repository
feat: port CI from `halo2curves` (#4)

Han tinghan0110@gmail.com
Thu, 17 Aug 2023 19:10:25 +0800
commit

77a0c8e6e346ed8c17a6633e86095922fa97d799

parent

16e261bbed5c4b7d5b34529e7c36ef5feff08016

4 files changed, 108 insertions(+), 2 deletions(-)

jump to
A .config/nextest.toml

@@ -0,0 +1,10 @@

+[profile.ci] +# Print out output for failing tests as soon as they fail, and also at the end +# of the run (for easy scrollability). +failure-output = "immediate-final" +# Show skipped tests in the CI output. +status-level = "skip" +# Do not cancel the test run on the first failure. +fail-fast = false +# Mark tests as slow after 5mins, kill them after 50 +slow-timeout = { period = "300s", terminate-after = 10 }
A .github/workflows/ci.yml

@@ -0,0 +1,92 @@

+name: CI Check +on: + merge_group: + pull_request: + push: + branches: + - main +env: + CARGO_TERM_COLOR: always + # Disable incremental compilation. + # + # Incremental compilation is useful as part of an edit-build-test-edit cycle, + # as it lets the compiler avoid recompiling code that hasn't changed. However, + # on CI, we're not making small edits; we're almost always building the entire + # project from scratch. Thus, incremental compilation on CI actually + # introduces *additional* overhead to support making future builds + # faster...but no future builds will ever occur in any given CI environment. + # + # See https://matklad.github.io/2021/09/04/fast-rust-builds.html#ci-workflow + # for details. + CARGO_INCREMENTAL: 0 + # Allow more retries for network requests in cargo (downloading crates) and + # rustup (installing toolchains). This should help to reduce flaky CI failures + # from transient network timeouts or other issues. + CARGO_NET_RETRY: 10 + RUSTUP_MAX_RETRIES: 10 + # Don't emit giant backtraces in the CI logs. + RUST_BACKTRACE: short + +# Jobs launched for a PR event cancel the ongoing one for the same workflow + PR, +# Only retries (of the same run) for a Push event cancel the prior one. +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + + +jobs: + test: + if: github.event.pull_request.draft == false + name: Test + runs-on: ubuntu-latest + strategy: + matrix: + include: + - feature: default + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + # use the more efficient nextest + - uses: taiki-e/install-action@nextest + - uses: Swatinem/rust-cache@v2 + - name: Build + # This build will be reused by nextest, + # and also checks (--all-targets) that benches don't bit-rot + run: cargo build --release --all-targets --no-default-features --features "${{ matrix.feature }}" + - name: Test + run: | + cargo nextest run --profile ci --release --workspace --no-default-features --features "${{ matrix.feature }}" + - name: Doctests # nextest does not support doc tests + run: | + cargo test --doc + + fmt: + if: github.event.pull_request.draft == false + name: Rustfmt + timeout-minutes: 30 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + - uses: Swatinem/rust-cache@v2 + - run: rustup component add rustfmt + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + if: github.event.pull_request.draft == false + name: Clippy lint checks + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + components: clippy + - uses: Swatinem/rust-cache@v2 + - name: Run clippy + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --all-targets --all-features -- -D warnings
M Cargo.toml → Cargo.toml

@@ -8,10 +8,13 @@ ark-ec = "0.4.2"

ark-ff = "0.4.2" ark-std = "0.4.0" ark-poly = "0.4.0" -ark-crypto-primitives = { version = "^0.4.0", default-features = false, features = [ "r1cs", "sponge" ] } +ark-crypto-primitives = { version = "^0.4.0", default-features = false, features = ["r1cs", "sponge"] } ark-relations = { version = "^0.4.0", default-features = false } ark-r1cs-std = { version = "^0.4.0", default-features = false } -thiserror = "1.0" +thiserror = "1.0" [dev-dependencies] ark-bls12-381 = "0.4.0" + +[features] +default = []
A rust-toolchain

@@ -0,0 +1,1 @@

+1.71.0