style: unify workspace code style #3760
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: Code Format | |
on: | |
pull_request: | |
merge_group: | |
workflow_dispatch: | |
# Ensure that only a single job or workflow using the same concurrency group will run at a time. | |
# see https://docs.github.com/en/actions/using-jobs/using-concurrency#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} | |
# only needs to check the group's latest commit | |
cancel-in-progress: true | |
jobs: | |
rustfmt: | |
strategy: | |
matrix: | |
# Supported GitHub-hosted runners and hardware resources | |
# see https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources | |
os: [ubuntu-22.04] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
components: rustfmt | |
toolchain: nightly | |
- name: Cargo +nightly fmt --all -- --check | |
run: make check-fmt | |
- name: Install cargo-sort | |
run: | | |
which cargo-sort >/dev/null && echo "cargo-sort is installed" \ | |
|| (echo "cargo-sort is not installed" && cargo install cargo-sort) | |
- name: Ensure Cargo.toml dependency tables are sorted | |
run: make check-sort | |
megalinter: | |
name: MegaLinter | |
runs-on: ubuntu-latest | |
# Give the default GITHUB_TOKEN write permission to commit and push, comment | |
# issues & post new PR; remove the ones you do not need | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
steps: | |
# Git Checkout | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} | |
# If you use VALIDATE_ALL_CODEBASE = true, you can remove this line to | |
# improve performance | |
fetch-depth: 0 | |
# MegaLinter | |
- name: MegaLinter | |
# You can override MegaLinter flavor used to have faster performances | |
# More info at https://megalinter.io/flavors/ | |
uses: oxsecurity/megalinter@v7 | |
id: ml | |
# All available variables are described in documentation | |
# https://megalinter.io/configuration/ | |
env: | |
VALIDATE_ALL_CODEBASE: >- | |
${{ | |
github.event_name == 'push' && | |
contains(fromJSON('["refs/heads/main", "refs/heads/master"]'), github.ref) | |
}} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE | |
# .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY | |
# Uncomment to disable copy-paste and spell checks | |
# DISABLE: COPYPASTE,SPELL | |
# Upload MegaLinter artifacts | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v4 | |
if: success() || failure() | |
with: | |
name: MegaLinter reports | |
path: | | |
megalinter-reports | |
mega-linter.log |