Merge pull request #626 from axone-protocol/dependabot/cargo/serde-1.… #1654
This file contains 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
name: Lint | |
on: | |
workflow_call: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
concurrency: | |
group: lint-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint-commits: | |
runs-on: ubuntu-22.04 | |
if: github.actor != 'dependabot[bot]' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Check commits | |
uses: wagoid/commitlint-github-action@v6 | |
lint-markdown: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Lint markdown files | |
uses: avto-dev/markdown-lint@v1.5.0 | |
with: | |
args: "**/*.md" | |
ignore: "CHANGELOG.md docs/**/*.md" | |
lint-yaml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Lint yaml files | |
uses: ibiqlik/action-yamllint@v3.1.1 | |
lint-cargo-toml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Find changed rust Cargo files | |
id: changed-rust-cargo | |
uses: tj-actions/changed-files@v44.5.7 | |
with: | |
files: | | |
**/Cargo.toml | |
Cargo.toml | |
- name: Setup rust | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
uses: davidB/rust-cargo-make@v1 | |
- name: Lint all Cargo.toml file | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
run: | | |
cargo make lint-cargo-toml | |
lint-cargo-makefile: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Find changed Cargo makefile | |
id: changed-cargo-makefile | |
uses: tj-actions/changed-files@v44.5.7 | |
with: | |
files: | | |
Makefile.toml | |
- name: Install cargo make | |
if: steps.changed-cargo-makefile.outputs.any_changed == 'true' | |
uses: davidB/rust-cargo-make@v1 | |
- name: Lint Cargo.toml file | |
if: steps.changed-cargo-makefile.outputs.any_changed == 'true' | |
run: | | |
FAILED=0 | |
for task in $(cargo make --list-all-steps | awk '{print $1;}' | sort | grep -v -- '---' ); do | |
if echo "$task" | grep '_' > /dev/null; then | |
>&2 echo "❌ $task - use kebab-case style for task names (e.g. 'my-task' instead of 'my_task')" | |
FAILED=1 | |
else | |
echo "✅ $task" | |
fi | |
done | |
if [ "${FAILED}" = "1" ]; then | |
exit 1 | |
fi | |
lint-rust: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Find changed rust files | |
id: changed-rust-files | |
uses: tj-actions/changed-files@v44.5.7 | |
with: | |
files: | | |
**/*.rs | |
Cargo.lock | |
Cargo.toml | |
- name: Setup rust | |
if: steps.changed-rust-files.outputs.any_changed == 'true' | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
if: steps.changed-rust-files.outputs.any_changed == 'true' | |
uses: davidB/rust-cargo-make@v1 | |
- name: Lint rust code | |
if: steps.changed-rust-files.outputs.any_changed == 'true' | |
run: | | |
cargo make lint-rust | |
lint-rust-format: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
uses: davidB/rust-cargo-make@v1 | |
- name: Check rust format | |
run: | | |
cargo make lint-rust-format | |
lint-toml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Cache cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cargo/bin | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
uses: davidB/rust-cargo-make@v1 | |
- name: Lint toml | |
run: | | |
cargo make lint-toml | |
lint-toml-format: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Find changed toml files | |
id: changed-toml-files | |
uses: tj-actions/changed-files@v44.5.7 | |
with: | |
files: | | |
**/*.toml | |
- name: Cache cargo registry | |
if: steps.changed-toml-files.outputs.any_changed == 'true' | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cargo/bin | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Setup rust | |
if: steps.changed-toml-files.outputs.any_changed == 'true' | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
if: steps.changed-toml-files.outputs.any_changed == 'true' | |
uses: davidB/rust-cargo-make@v1 | |
- name: Check toml files are formatted | |
if: steps.changed-toml-files.outputs.any_changed == 'true' | |
run: | | |
cargo make format-toml | |
if [[ $(git status -s | grep .toml) ]]; then | |
>&2 echo "❌ There is a diff between formatted files and source code" | |
>&2 git status | |
exit 1 | |
fi | |
report-wasm-size: | |
runs-on: ubuntu-22.04 | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Cache cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cargo/bin | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
uses: davidB/rust-cargo-make@v1 | |
- name: Prepare size limit | |
run: | | |
cp .github/package.json package.json | |
- name: Report wasm size limit | |
uses: andresz1/size-limit-action@v1 | |
with: | |
github_token: ${{ secrets.OPS_TOKEN }} | |
check-contracts: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Cache cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cargo/bin | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
uses: davidB/rust-cargo-make@v1 | |
- name: Check contracts | |
shell: bash | |
run: cargo make check-contracts | |
check-docs-updated: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
- name: Setup jq | |
uses: dcarbone/install-jq-action@v2 | |
with: | |
version: 1.7 | |
force: true | |
- name: Cache cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cargo/bin | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75 | |
default: true | |
override: true | |
- name: Install cargo make | |
uses: davidB/rust-cargo-make@v1 | |
- name: Generate schema | |
run: cargo make schema | |
- name: Generate documentations | |
run: cargo make docs-generate | |
- name: Verify changed docs files | |
uses: tj-actions/verify-changed-files@v20 | |
id: verify-changed-docs-files | |
with: | |
files: | | |
docs/*.md | |
- name: Run step only when files change. | |
if: steps.verify-changed-docs-files.outputs.files_changed == 'true' | |
run: | | |
echo "❌ Documentation files has been updated." | |
echo " Changed files : ${{ steps.verify-changed-docs-files.outputs.changed_files }}" | |
git diff --name-only | grep 'docs/' | while read file; do | |
echo "‣ Changes in $file:" | |
git diff HEAD $file | |
done | |
echo "Please generate docs using \`cargo make docs-generate\` then commit this new documentation." | |
exit 1 | |
lint-branch-name: | |
runs-on: ubuntu-22.04 | |
if: github.actor != 'dependabot[bot]' && github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'reopened') | |
steps: | |
- name: Check branch name conventions | |
uses: AlbertHernandez/branch-name-action@v1.0.2 | |
with: | |
branch_pattern: "feat|fix|build|ci|docs|style|refactor|perf|test|chore" | |
comment_for_invalid_branch_name: | | |
🙋 Oops! This branch name does not follow the naming convention. | |
<hr> | |
Please, see the following branch naming convention: | |
Branch naming convention | Purpose | |
------------------------ | ------- | |
`feat/**` | A new feature | |
`fix/**` | A bug fix | |
`build/**` | Changes that affect the build system (npm, mavem, poetry) | |
`ci/**` | Changes to the CI configuration | |
`docs/**` | Documentation only changes | |
`style/**` | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | |
`refactor/**` | Code changes that neither fixe a bug nor adds a feature | |
`perf/**` | Code changes that improve performance | |
`test/**` | When adding tests or correcting existing tests | |
`chore/**` | Other changes that don't modify source | |
fail_if_invalid_branch_name: "true" | |
ignore_branch_pattern: "main" | |
- name: Close non-compliant branch | |
if: ${{ failure() }} | |
uses: codelytv/no-pull-requests@v1 | |
with: | |
GITHUB_TOKEN: ${{ secrets.OPS_TOKEN }} | |
message: 🙅 Closing the PR because it does not respect naming conventions. Edit the branch name and submit a new PR. | |
env: | |
GITHUB_TOKEN: ${{ secrets.OPS_TOKEN }} |