From 0d160a0df36cc7208acc6776fe2b06d6020ba3e8 Mon Sep 17 00:00:00 2001 From: Pedro Pombeiro Date: Tue, 1 Oct 2024 22:46:46 +0200 Subject: [PATCH] Add linters to CI pipeline --- .github/workflows/publishBranchesPRs.yml | 4 +-- .github/workflows/publishMaster.yml | 4 +-- .github/workflows/publishTags.yml | 6 ++-- .github/workflows/superLinter.yml | 38 ++++++++++++++++++++++++ .hadolint.yml | 3 ++ .yamllint.yml | 11 +++++++ 6 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/superLinter.yml create mode 100644 .hadolint.yml create mode 100644 .yamllint.yml diff --git a/.github/workflows/publishBranchesPRs.yml b/.github/workflows/publishBranchesPRs.yml index 09148d8..7129cae 100644 --- a/.github/workflows/publishBranchesPRs.yml +++ b/.github/workflows/publishBranchesPRs.yml @@ -5,7 +5,7 @@ name: PR - Create and publish a Docker image on: pull_request: #push: - # branches: + # branches: # - '*' # - '!master' @@ -22,7 +22,7 @@ jobs: permissions: contents: read packages: write - # + # steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/.github/workflows/publishMaster.yml b/.github/workflows/publishMaster.yml index 8abddac..f4a7d21 100644 --- a/.github/workflows/publishMaster.yml +++ b/.github/workflows/publishMaster.yml @@ -4,7 +4,7 @@ name: Master - Create and publish a Docker image # Configures this workflow to run every time a change is pushed to the branch called `master`. on: push: - branches: ['master'] + branches: ["master"] # Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. env: @@ -19,7 +19,7 @@ jobs: permissions: contents: read packages: write - # + # steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/.github/workflows/publishTags.yml b/.github/workflows/publishTags.yml index 4dd9245..7785d1c 100644 --- a/.github/workflows/publishTags.yml +++ b/.github/workflows/publishTags.yml @@ -4,8 +4,8 @@ name: Tags - Create and publish a Docker image # Build when a tag is created on: push: - tags: - - '**' + tags: + - "**" # Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. env: @@ -20,7 +20,7 @@ jobs: permissions: contents: read packages: write - # + # steps: - name: Checkout repository uses: actions/checkout@v3 diff --git a/.github/workflows/superLinter.yml b/.github/workflows/superLinter.yml new file mode 100644 index 0000000..674f628 --- /dev/null +++ b/.github/workflows/superLinter.yml @@ -0,0 +1,38 @@ +--- +# This workflow executes several linters on changed files based on languages used in your code base whenever +# you push a code or open a pull request. +# +# You can adjust the behavior by modifying this file. +# For more information, see: +# https://github.com/github/super-linter +name: Lint Code Base + +on: # yamllint disable-line rule:truthy + push: + branches: ["master"] + pull_request: + branches: ["master"] + +jobs: + run-lint: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + # Full git history is needed to get a proper list of changed files within `super-linter` + fetch-depth: 0 + + - name: Lint Code Base + uses: github/super-linter/slim@v7 + env: + VALIDATE_ALL_CODEBASE: false + VALIDATE_EDITORCONFIG: false + VALIDATE_MARKDOWN: false + VALIDATE_PHP: false + DEFAULT_BRANCH: master + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LINTER_RULES_PATH: / + DOCKERFILE_HADOLINT_LINTER_RULES: .hadolint.yml + MARKDOWN_CONFIG_FILE: .markdown-lint.yml + YAML_LINTER_RULES: .yamllint.yml diff --git a/.hadolint.yml b/.hadolint.yml new file mode 100644 index 0000000..c390dfb --- /dev/null +++ b/.hadolint.yml @@ -0,0 +1,3 @@ +ignored: + - DL3008 # Pin versions in apt get install. Instead of `apt-get install ` use `apt-get install =` + - DL3018 # Pin versions in apk add. Instead of `apk add ` use `apk add =` diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..fb06ff6 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,11 @@ +extends: default + +rules: + document-start: disable + line-length: + max: 180 + level: warning + comments: + # Changed this to stop a mess between linters from Prettier (vscode) to yamllint + # - https://github.com/prettier/prettier/pull/10926 + min-spaces-from-content: 1