Merge pull request #451 from okp4/dependabot/github_actions/cycjimmy/β¦ #1319
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 regular markdown files | |
uses: avto-dev/markdown-lint@v1.5.0 | |
with: | |
args: "**/*.md" | |
ignore: "CHANGELOG.md docs/**/*.md" | |
- name: Lint generated markdown files | |
uses: avto-dev/markdown-lint@v1.5.0 | |
with: | |
args: "docs/**/*.md" | |
config: "docs/.markdownlint.yaml" | |
lint-yaml: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Lint yaml files | |
uses: ibiqlik/action-yamllint@v3.1.1 | |
lint-json: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- 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-go: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Find changed go files | |
id: changed-go-files | |
uses: tj-actions/changed-files@v39.0.2 | |
with: | |
files: | | |
**/*.go | |
go.mod | |
go.sum | |
- name: Setup Go environment | |
uses: actions/setup-go@v4.0.1 | |
if: steps.changed-go-files.outputs.any_changed == 'true' | |
with: | |
go-version: "1.20" | |
cache: false | |
- name: Lint go code (golangci-lint) | |
uses: golangci/golangci-lint-action@v3 | |
if: steps.changed-go-files.outputs.any_changed == 'true' | |
with: | |
version: v1.53 | |
- name: Lint go code (gofumpt) | |
if: steps.changed-go-files.outputs.any_changed == 'true' | |
run: | | |
go install mvdan.cc/gofumpt@v0.4.0 | |
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@v3 | |
with: | |
fetch-depth: 0 | |
- name: Find changed go files | |
id: changed-go-files | |
uses: tj-actions/changed-files@v39.0.2 | |
with: | |
files: | | |
**/*.go | |
go.mod | |
go.sum | |
- name: Setup Go environment | |
uses: actions/setup-go@v4.0.1 | |
with: | |
go-version: "1.20" | |
cache: false | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
with: | |
languages: "go" | |
- name: Autobuild project | |
uses: github/codeql-action/autobuild@v2 | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v2 | |
lint-dockerfile: | |
runs-on: ubuntu-22.04 | |
if: github.actor != 'dependabot[bot]' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Lint dockerfile (hadolint) | |
uses: hadolint/hadolint-action@v3.1.0 | |
with: | |
verbose: true | |
lint-proto: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Find changed proto files | |
id: changed-proto-files | |
uses: tj-actions/changed-files@v39.0.2 | |
with: | |
files: | | |
proto/**/*.proto | |
- name: Lint proto files | |
if: steps.changed-proto-files.outputs.any_changed == 'true' | |
run: | | |
make lint-proto | |
lint-generated: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Setup Go environment | |
uses: actions/setup-go@v4.0.1 | |
with: | |
go-version: "1.20" | |
- name: Generate command documentation | |
run: | | |
make doc-command | |
- name: Generate proto and documentation | |
run: | | |
make doc-proto | |
- name: Check Git diff in generated files (proto + docs) | |
run: | | |
if [[ $(git status -s | grep --fixed-strings -v "go.mod" | grep --fixed-strings -v "go.sum") != "" ]]; then | |
>&2 echo "β There is a diff between generated files and source code" | |
>&2 git status | |
exit 1 | |
fi | |
lint-shell: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- name: Lint shell scripts | |
uses: ludeeus/action-shellcheck@2.0.0 | |
with: | |
scandir: . | |
version: "v0.9.0" | |
env: | |
SHELLCHECK_OPTS: -e SC2034 |