vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

GitHub Actions で CloudFormation Linter 実行時に config file を読みたい

結果的に README 記載の通りでしたが備忘録です。

CloudFormation Linter

AWS謹製 CloudFormation テンプレートの検証ツールです。

オプションは実行時引数で渡すか、 config file .cfnlintrc で指定ができます。

直接実行しても良いのですが、cfn-lint を実行する GitHub Action がいくつか公開されていたので、今回は以下の2つを使わせてもらって確認します。

ディレクトリ構成

.
├── .cfnlintrc
├── .github
│   └── workflows
│       ├── cfn-lint.yml

aws-cloudformation/cfn-lint: CloudFormation Linter を参考に .cfnlintrc にパラメータを書きます。

templates:
    - "**/*.yaml"
    - "**/*.yml"
ignore_templates:
    - "etc/**"

Workflow

cfn-lint-action の場合

Usage を参考にワークフローを書きます。
cfn-lint コマンドを実行しているだけなので、所定の場所に config file を格納しておけば読み込んでくれます。

jobs:
  cloudformation-linter:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Testing with CFN Lint Command
        uses: scottbrenner/cfn-lint-action@v2
        with:
          command: cfn-lint --debug

actions-cfn-lint の場合

README には記載が無いですが、参考例が Template file not found due to use of quotes around multiple template file paths · Issue #187 · shogo82148/actions-cfn-lint にあります。 複数ファイルを対象にする場合に使います。

args--config-file を指定することでconfig fileを読み込ませます。 (config file を読み込ませるだけであればargsの変更は不要で、同様に所定の場所に config file を格納しておけば読み込んでくれます。)

jobs:
  cloudformation-linter:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Testing with CFN Lint Command
      uses: shogo82148/actions-cfn-lint@v1
      with:
        args: --debug --config-file .cfnlintrc