Skip to content

Chore/setup

Chore/setup #2

Workflow file for this run

name: Lint
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
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"
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-go:
runs-on: ubuntu-22.04
timeout-minutes: 10
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Find changed go files
id: changed-go-files
uses: tj-actions/[email protected]
with:
files: |
**/*.go
go.mod
go.sum
- name: Setup Go environment
uses: actions/[email protected]
if: steps.changed-go-files.outputs.any_changed == 'true'
with:
go-version: "1.22"
cache: false
- name: Lint go code (golangci-lint)
uses: golangci/golangci-lint-action@v6
if: steps.changed-go-files.outputs.any_changed == 'true'
with:
version: v1.59
- name: Lint go code (gofumpt)
if: steps.changed-go-files.outputs.any_changed == 'true'
run: |
go install mvdan.cc/[email protected]
if [ "$(gofumpt -l .)" != "" ]; then
echo "❌ Code is not gofumpt!"
exit 1
fi
echo "✅ Code is gofumpt!"
analyze-go:
runs-on: ubuntu-22.04
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Find changed go files
id: changed-go-files
uses: tj-actions/[email protected]
with:
files: |
**/*.go
go.mod
go.sum
- name: Setup Go environment
uses: actions/[email protected]
with:
go-version: "1.22"
cache: false
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: "go"
- name: Autobuild project
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
lint-dockerfile:
runs-on: ubuntu-22.04
if: github.actor != 'dependabot[bot]'
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Lint dockerfile (hadolint)
uses: hadolint/[email protected]
with:
verbose: true
lint-shell:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Lint shell scripts
uses: ludeeus/[email protected]
with:
scandir: .
version: "v0.9.0"
env:
SHELLCHECK_OPTS: -e SC2034
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.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 }}