Skip to content

Commit 1c3017f

Browse files
committed
add commit hooks
1 parent 9362940 commit 1c3017f

File tree

5 files changed

+143
-0
lines changed

5 files changed

+143
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
name: pre-commit-check
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- develop
8+
pull_request:
9+
10+
jobs:
11+
build:
12+
runs-on: macOS-latest
13+
steps:
14+
- uses: actions/checkout@v1
15+
- name: Install prerequisites
16+
run: ./bin/install-macos.sh
17+
- name: initiallize Terraform
18+
run: terraform init --backend=false
19+
- uses: actions/cache@v1
20+
with:
21+
path: ~/.cache/pre-commit
22+
key: pre-commit|${{ hashFiles('.pre-commit-config.yaml') }}
23+
restore-keys: |
24+
pre-commit
25+
- name: pre-commit run all
26+
run: |
27+
pre-commit run -a
28+
env:
29+
AWS_DEFAULT_REGION: us-east-1
30+
SKIP: terraform_tflint_deep

.pre-commit-config.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
repos:
2+
- repo: https://github.com/antonbabenko/pre-commit-terraform
3+
rev: v1.31.0
4+
hooks:
5+
- id: terraform_docs
6+
args:
7+
- --args=--sort-by-required
8+
- id: terraform_fmt
9+
- id: terraform_tflint
10+
alias: terraform_tflint_deep
11+
name: terraform_tflint_deep
12+
args:
13+
- --args=--deep
14+
- id: terraform_tflint
15+
alias: terraform_tflint_nocreds
16+
name: terraform_tflint_nocreds
17+
- id: terraform_tfsec
18+
- id: terraform_validate
19+
exclude: examples
20+
- repo: https://github.com/pre-commit/pre-commit-hooks
21+
rev: v3.0.0
22+
hooks:
23+
- id: check-case-conflict
24+
- id: check-json
25+
- id: check-merge-conflict
26+
- id: check-symlinks
27+
- id: check-yaml
28+
args:
29+
- --unsafe
30+
- id: end-of-file-fixer
31+
- id: trailing-whitespace
32+
- id: mixed-line-ending
33+
args:
34+
- --fix=lf
35+
- id: no-commit-to-branch
36+
- id: pretty-format-json
37+
args:
38+
- --autofix
39+
- --top-keys=name,Name
40+
- id: trailing-whitespace
41+
args:
42+
- --markdown-linebreak-ext=md
43+
exclude: README.md

.tflint.hcl

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
config {
2+
module = true
3+
deep_check = false
4+
}
5+
6+
rule "terraform_deprecated_interpolation" {
7+
enabled = true
8+
}
9+
10+
rule "terraform_unused_declarations" {
11+
enabled = true
12+
}
13+
14+
rule "terraform_comment_syntax" {
15+
enabled = true
16+
}
17+
18+
rule "terraform_documented_outputs" {
19+
enabled = true
20+
}
21+
22+
rule "terraform_documented_variables" {
23+
enabled = true
24+
}
25+
26+
rule "terraform_typed_variables" {
27+
enabled = true
28+
}
29+
30+
rule "terraform_module_pinned_source" {
31+
enabled = true
32+
}
33+
34+
rule "terraform_naming_convention" {
35+
enabled = true
36+
format = "snake_case"
37+
}
38+
39+
rule "terraform_required_version" {
40+
enabled = true
41+
}
42+
43+
rule "terraform_required_providers" {
44+
enabled = true
45+
}

bin/install-macos.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
echo 'installing brew packages'
4+
brew update
5+
brew tap liamg/tfsec
6+
brew install tfenv tflint terraform-docs pre-commit liamg/tfsec/tfsec coreutils
7+
brew upgrade tfenv tflint terraform-docs pre-commit liamg/tfsec/tfsec coreutils
8+
9+
echo 'installing pre-commit hooks'
10+
pre-commit install
11+
12+
echo 'setting pre-commit hooks to auto-install on clone in the future'
13+
git config --global init.templateDir ~/.git-template
14+
pre-commit init-templatedir ~/.git-template
15+
16+
echo 'installing terraform with tfenv'
17+
tfenv install min-required
18+
tfenv use min-required

versions.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
terraform {
2+
required_version = ">= 0.12.2"
3+
4+
required_providers {
5+
aws = "~> 2.44"
6+
}
7+
}

0 commit comments

Comments
 (0)