Ci/bump rust version 1 69 #839
Workflow file for this run
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@v3 | |
with: | |
fetch-depth: 0 | |
- name: Check commits | |
uses: wagoid/commitlint-github-action@v5 | |
lint-markdown: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Lint markdown files | |
uses: avto-dev/[email protected] | |
with: | |
args: "**/*.md" | |
ignore: "CHANGELOG.md docs/**/*.md" | |
lint-yaml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Lint yaml files | |
uses: ibiqlik/[email protected] | |
lint-cargo-toml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Find changed rust Cargo files | |
id: changed-rust-cargo | |
uses: tj-actions/[email protected] | |
with: | |
files: | | |
Cargo.toml | |
- name: Setup rust | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.69 | |
default: true | |
override: true | |
- name: Install cargo-toml-lint | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
run: | | |
cargo install --force cargo-toml-lint | |
- name: Lint Cargo.toml file | |
if: steps.changed-rust-cargo.outputs.any_changed == 'true' | |
run: | | |
cargo-toml-lint Cargo.toml | |
lint-cargo-makefile: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Find changed Cargo makefile | |
id: changed-cargo-makefile | |
uses: tj-actions/[email protected] | |
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@v3 | |
- name: Find changed rust files | |
id: changed-rust-files | |
uses: tj-actions/[email protected] | |
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.69 | |
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@v3 | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.69 | |
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@v3 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
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.69 | |
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@v3 | |
- name: Find changed toml files | |
id: changed-toml-files | |
uses: tj-actions/[email protected] | |
with: | |
files: | | |
**/*.toml | |
- name: Cache cargo registry | |
if: steps.changed-toml-files.outputs.any_changed == 'true' | |
uses: actions/cache@v3 | |
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.69 | |
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@v3 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
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.69 | |
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.OKP4_TOKEN }} | |
check-contracts: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
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.69 | |
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@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Installing jsonschema2md | |
run: | | |
yarn global add @adobe/[email protected] | |
echo "$(yarn global bin)" >> $GITHUB_PATH | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
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.69 | |
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@v14 | |
id: verify-changed-docs-files | |
with: | |
files: | | |
docs | |
- name: Run step only when files change. | |
if: contains(steps.verify-changed-docs-files.outputs.changed_files, 'docs') | |
run: | | |
echo "❌ Documentation files has been updated." | |
echo " Changed files : ${{ steps.verify-changed-docs-files.outputs.changed_files }}" | |
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/[email protected] | |
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.OKP4_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.OKP4_TOKEN }} |