Skip to content

Update Config Rules #12

Update Config Rules

Update Config Rules #12

Workflow file for this run

name: Update Config Rules
on:
schedule:
- cron: '0 0 1,15 * *'
workflow_dispatch:
jobs:
update-rules:
name: Update Rules
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Update rules
id: update-rules
run: |
cd scripts
pip install -r requirements.txt
python index.py
get-changes:
name: Get Changed Files
runs-on: ubuntu-latest
needs:
- update-rules
outputs:
any_changed: ${{ steps.changed-files.outputs.any_changed }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v44
with:
files: "*.tf"
- name: List all changed files
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'
tflint:
name: Run TFLint
runs-on: ubuntu-latest
needs:
- get-changes
if: ${{ needs.get-changes.outputs.any_changed == 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache@v4
name: Cache plugin dir
with:
path: ~/.tflint.d/plugins
key: tflint-${{ hashFiles('.tflint.hcl') }}
- uses: terraform-linters/setup-tflint@v4
name: Setup TFLint
with:
tflint_version: v0.50.3
- name: Show version
run: tflint --version
- name: Init TFLint
run: tflint --init
- name: Run TFLint
run: tflint --disable-rule=terraform_required_version
terraform-fmt:
name: Terraform Format
runs-on: ubuntu-latest
needs:
- get-changes
permissions:
contents: write
pull-requests: read
if: ${{ needs.get-changes.outputs.any_changed == 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.6.0
- name: Terraform Format
run: terraform fmt --recursive .
- uses: dorny/paths-filter@v3
id: filter
with:
token: ${{ secrets.GITHUB_TOKEN }}
base: HEAD
filters: |
terraform:
- '*.tf'
create-pull-request:
name: Create/update pull request
runs-on: ubuntu-latest
needs:
- get-changes
- tflint
- terraform-fmt
if: ${{ needs.get-changes.outputs.any_changed == 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
base: main
branch: auto-update-aws-config-rules
add-paths: |
managed_rules_locals.tf
managed_rules_variables.tf
commit-message: Automatic updates to AWS managed Config Rules
delete-branch: true
title: '[Auto] Update AWS Config Rules'
body: |
Update the list of AWS managed Config Rules using the [latest documentation](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html).
assignees: bensonce
reviewers: bensonce,duraikkannuv2