From 2db0b9f49e29657a668ff2b6fcf83ba89a4dbac6 Mon Sep 17 00:00:00 2001 From: auricom <27022259+auricom@users.noreply.github.com> Date: Mon, 11 Jul 2022 16:37:30 +0200 Subject: [PATCH] feat: megalinter --- .github/workflows/lint.yaml | 58 +++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 27de5cb50..6a00d7f4d 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -2,13 +2,14 @@ name: Lint on: # yamllint disable-line rule:truthy + workflow_dispatch: pull_request: branches: - main -env: - # Currently no way to detect automatically - DEFAULT_BRANCH: main +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true jobs: build: @@ -25,14 +26,47 @@ jobs: with: app_id: "${{ secrets.BOT_APP_ID }}" private_key: "${{ secrets.BOT_APP_PRIVATE_KEY }}" - - name: Lint - uses: github/super-linter/slim@v4 + - name: MegaLinter + uses: oxsecurity/megalinter@v6.0.2 env: - VALIDATE_ALL_CODEBASE: false - DEFAULT_BRANCH: "${{ env.DEFAULT_BRANCH }}" GITHUB_TOKEN: "${{ steps.generate-token.outputs.token }}" - ANSIBLE_CONFIG_FILE: .ansible-lint - MARKDOWN_CONFIG_FILE: .markdownlint.yaml - TERRAFORM_TFLINT_CONFIG_FILE: .tflint.hcl - YAML_CONFIG_FILE: .yamllint.yaml - KUBERNETES_KUBEVAL_OPTIONS: --ignore-missing-schemas + PRINT_ALPACA: false + VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'workflow_dispatch' }} + ENABLE_LINTERS: |- + ${{ + join( + fromJSON(' + [ + "ACTION_ACTIONLINT", + "ANSIBLE_ANSIBLE_LINT", + "COPYPASTE_JSCPD", + "CREDENTIALS_SECRETLINT", + "GIT_GIT_DIFF", + "KUBERNETES_KUBEVAL", + "MARKDOWN_MARKDOWNLINT", + "TERRAFORM_TERRAFORM_FMT", + "YAML_PRETTIER", + "YAML_YAMLLINT" + ] + '), + ',' + ) + }} + ANSIBLE_DIRECTORY: ansible + ANSIBLE_ANSIBLE_LINT_CONFIG_FILE: .ansible-lint + KUBERNETES_DIRECTORY: cluster + KUBERNETES_KUBEVAL_ARGUMENTS: --ignore-missing-schemas + KUBERNETES_KUBEVAL_FILTER_REGEX_INCLUDE: "(kubernetes)" + MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .github/linters/.markdownlint.yaml + MARKDOWN_MARKDOWNLINT_RULES_PATH: .github/ + YAML_YAMLLINT_CONFIG_FILE: .github/linters/.yamllint.yaml + YAML_PRETTIER_FILTER_REGEX_EXCLUDE: "(.*\\.sops\\.ya?ml)" + + - name: Archive production artifacts + if: ${{ success() }} || ${{ failure() }} + uses: actions/upload-artifact@v3 + with: + name: MegaLinter reports + path: | + report + mega-linter.log