Updated ci + added scripts
Paul-Henry Kajfasz kajfaszph@gmail.com
Fri, 16 Aug 2024 15:32:03 -0700
8 files changed,
115 insertions(+),
127 deletions(-)
A
.github/workflows/build.yml
@@ -0,0 +1,25 @@
+# Runs build related jobs. + +name: build + +on: + push: + branches: [main, next] + pull_request: + types: [opened, reopened, synchronize] + +jobs: + no-std: + name: Build for no-std + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + toolchain: [stable, nightly] + steps: + - uses: actions/checkout@main + - name: Build for no-std + run: | + rustup update --no-self-update ${{ matrix.toolchain }} + rustup target add wasm32-unknown-unknown + make build-no-std
A
.github/workflows/changelog.yml
@@ -0,0 +1,23 @@
+# Runs changelog related jobs. +# CI job heavily inspired by: https://github.com/tarides/changelog-check-action + +name: changelog + +on: + pull_request: + types: [opened, reopened, synchronize, labeled, unlabeled] + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@main + with: + fetch-depth: 0 + - name: Check for changes in changelog + env: + BASE_REF: ${{ github.event.pull_request.base.ref }} + NO_CHANGELOG_LABEL: ${{ contains(github.event.pull_request.labels.*.name, 'no changelog') }} + run: ./scripts/check-changelog.sh "${{ inputs.changelog }}" + shell: bash
D
.github/workflows/doc.yml
@@ -1,31 +0,0 @@
-# Runs documentation related jobs. - -name: doc - -on: - push: - branches: - - main - pull_request: - types: [opened, reopened, synchronize] - -jobs: - docs: - name: Verify the docs on ${{matrix.toolchain}} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - toolchain: [stable] - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{matrix.toolchain}} - override: true - - uses: davidB/rust-cargo-make@v1 - - name: cargo make - doc - run: cargo make doc
M
.github/workflows/lint.yml
→
.github/workflows/lint.yml
@@ -4,63 +4,50 @@ name: lint
on: push: - branches: - - main + branches: [main, next] pull_request: types: [opened, reopened, synchronize] jobs: - version: - name: check rust version consistency + clippy: + name: clippy nightly on ubuntu-latest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - profile: minimal - override: true - - name: check rust versions - run: ./scripts/check-rust-version.sh + - uses: actions/checkout@main + - name: Clippy + run: | + rustup update --no-self-update nightly + rustup +nightly component add clippy + make clippy rustfmt: - name: rustfmt ${{matrix.toolchain}} on ${{matrix.os}} - runs-on: ${{matrix.os}}-latest - strategy: - fail-fast: false - matrix: - toolchain: [nightly] - os: [ubuntu] + name: rustfmt check nightly on ubuntu-latest + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Install minimal Rust with rustfmt - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{matrix.toolchain}} - components: rustfmt - override: true - - uses: davidB/rust-cargo-make@v1 - - name: cargo make - format-check - run: cargo make format-check + - uses: actions/checkout@main + - name: Rustfmt + run: | + rustup update --no-self-update nightly + rustup +nightly component add rustfmt + make format-check + + doc: + name: doc stable on ubuntu-latest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@main + - name: Build docs + run: | + rustup update --no-self-update + make doc - clippy: - name: clippy ${{matrix.toolchain}} on ${{matrix.os}} - runs-on: ${{matrix.os}}-latest - strategy: - fail-fast: false - matrix: - toolchain: [stable] - os: [ubuntu] + version: + name: check rust version consistency + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install minimal Rust with clippy - uses: actions-rs/toolchain@v1 + - uses: actions/checkout@main with: profile: minimal - toolchain: ${{matrix.toolchain}} - components: clippy override: true - - uses: davidB/rust-cargo-make@v1 - - name: cargo make - clippy - run: cargo make clippy + - name: check rust versions + run: ./scripts/check-rust-version.sh
D
.github/workflows/no-std.yml
@@ -1,32 +0,0 @@
-# Runs no-std related jobs. - -name: no-std - -on: - push: - branches: - - main - pull_request: - types: [opened, reopened, synchronize] - -jobs: - no-std: - name: build ${{matrix.toolchain}} no-std for wasm32-unknown-unknown - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - toolchain: [stable, nightly] - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{matrix.toolchain}} - override: true - - run: rustup target add wasm32-unknown-unknown - - uses: davidB/rust-cargo-make@v1 - - name: cargo make - build-no-std - run: cargo make build-no-std
M
.github/workflows/test.yml
→
.github/workflows/test.yml
@@ -1,34 +1,28 @@
-# Runs testing related jobs +# Runs test related jobs. name: test on: push: - branches: - - main + branches: [main, next] pull_request: types: [opened, reopened, synchronize] jobs: test: - name: test ${{matrix.toolchain}} on ${{matrix.os}} with ${{matrix.features}} + name: test ${{matrix.toolchain}} on ${{matrix.os}} with ${{matrix.args}} runs-on: ${{matrix.os}}-latest strategy: fail-fast: false matrix: toolchain: [stable, nightly] os: [ubuntu] - features: ["test", "test-no-default-features"] + args: [default, no-default] timeout-minutes: 30 steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{matrix.toolchain}} - override: true - - uses: davidB/rust-cargo-make@v1 - - name: cargo make - test - run: cargo make ${{matrix.features}} + - uses: actions/checkout@main + - uses: taiki-e/install-action@nextest + - name: Perform tests + run: | + rustup update --no-self-update ${{matrix.toolchain}} + make test-${{matrix.args}}
M
README.md
→
README.md
@@ -2,8 +2,9 @@ # Miden Crypto
[](https://github.com/0xPolygonMiden/crypto/blob/main/LICENSE) [](https://github.com/0xPolygonMiden/crypto/actions/workflows/test.yml) -[](https://github.com/0xPolygonMiden/crypto/actions/workflows/no-std.yml) -[]() +[](https://github.com/0xPolygonMiden/crypto/actions/workflows/build.yml) +[](https://www.rust-lang.org/tools/install) +[](https://github.com/0xPolygonMiden/miden-crypto/releases/) [](https://crates.io/crates/miden-crypto) This crate contains cryptographic primitives used in Polygon Miden.
A
scripts/check-changelog.sh
@@ -0,0 +1,21 @@
+#!/bin/bash +set -uo pipefail + +CHANGELOG_FILE="${1:-CHANGELOG.md}" + +if [ "${NO_CHANGELOG_LABEL}" = "true" ]; then + # 'no changelog' set, so finish successfully + echo "\"no changelog\" label has been set" + exit 0 +else + # a changelog check is required + # fail if the diff is empty + if git diff --exit-code "origin/${BASE_REF}" -- "${CHANGELOG_FILE}"; then + >&2 echo "Changes should come with an entry in the \"CHANGELOG.md\" file. This behavior +can be overridden by using the \"no changelog\" label, which is used for changes +that are trivial / explicitely stated not to require a changelog entry." + exit 1 + fi + + echo "The \"CHANGELOG.md\" file has been updated." +fi