Merge pull request #539 from axone-protocol/feat/modules-v9.0.0 #2124
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/[email protected] | |
with: | |
args: "**/*.md" | |
ignore: contracts/**/*.md contracts_versioned_docs/**/*.md modules/**/*.md modules_versioned_docs/**/*.md commands/**/*.md commands_versioned_docs/**/*.md | |
lint-yaml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Lint yaml files | |
uses: ibiqlik/[email protected] | |
lint-json: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Lint json files | |
run: | | |
sudo apt install -y jsonlint | |
find ./ -type f -name "*.json" -exec sh -c ' | |
for file do | |
if ! jsonlint-php -q "$file"; then | |
echo "❌ $file" | |
export FAILED=1 | |
else | |
echo "✅ $file" | |
fi | |
done | |
if [ "${FAILED}" = "1" ]; then | |
exit 1 | |
fi | |
' sh {} + | |
lint-image: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Lint image files | |
run: | | |
FAILED=0 | |
for file in $(find "$FOLDER" -regextype posix-egrep -regex '.+\.(bmp|ico|jpg|jpeg|png|svg|webp)'); do | |
type=$(identify $file | awk '{print $2}') | |
if [[ $type =~ ^(WEBP|SVG|ICO)$ ]]; then | |
echo "✅ $file" | |
else | |
>&2 echo "❌ $file incorrect. Please use only webp or svg format 🙏" | |
FAILED=1 | |
fi | |
done | |
if [ "${FAILED}" = "1" ]; then | |
exit 1 | |
fi | |
env: | |
FOLDER: ./static | |
lint-web: | |
runs-on: ubuntu-22.04 | |
env: | |
WEB_PORT: 3000 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Setup node environment (for building) | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.19 | |
cache: yarn | |
- name: Fetch dependencies | |
run: | | |
yarn --frozen-lockfile | |
- name: Start web server | |
run: | | |
yarn build | |
yarn serve --port $WEB_PORT --no-open & | |
sleep 2 | |
- name: Create artifacts directory | |
run: | | |
mkdir -p ${{ github.workspace }}/tmp/artifacts | |
- name: Run Lighthouse | |
uses: foo-software/[email protected] | |
with: | |
prCommentEnabled: true | |
maxRetries: 2 | |
outputDirectory: ${{ github.workspace }}/tmp/artifacts | |
device: all | |
urls: >- | |
http://localhost:${{ env.WEB_PORT }}/ | |
gitHubAccessToken: ${{ secrets.OPS_TOKEN }} | |
- name: Upload lighthouse reports | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Lighthouse reports | |
path: ${{ github.workspace }}/tmp/artifacts | |
- name: Stop web server | |
if: always() | |
run: | | |
kill $(lsof -t -i:$WEB_PORT) | |
report-new-dependencies: | |
runs-on: ubuntu-22.04 | |
if: github.event_name == 'pull_request' && github.actor != 'dependabot[bot]' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Check for new dependencies | |
uses: hiwelo/[email protected] | |
with: | |
token: ${{ secrets.OPS_TOKEN }} | |
lint-branch-name: | |
runs-on: ubuntu-22.04 | |
if: github.actor != 'dependabot[bot]' && github.event_name == 'pull_request' && (github.event.action == 'opened') | |
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.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 }} | |
lint-scss: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Setup node environment (for building) | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.19 | |
cache: yarn | |
- name: Fetch dependencies | |
run: | | |
yarn | |
- name: Lint scss | |
run: | | |
yarn stylelint '**/*.scss' |