Skip to content

Commit 747936e

Browse files
authored
Merge pull request #1 from leandevops/develop
Develop
2 parents 59a477c + c4f22af commit 747936e

File tree

17 files changed

+1246
-1
lines changed

17 files changed

+1246
-1
lines changed

.circleci/config.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
env: &docker
2+
docker:
3+
- image: leandevopsio/terratest:0.1
4+
5+
version: 2
6+
jobs:
7+
terraform-init:
8+
<<: *docker
9+
steps:
10+
- checkout
11+
- run:
12+
name: Terraform init
13+
command: |
14+
cd module
15+
terraform init -input=false
16+
17+
terraform-validate:
18+
<<: *docker
19+
steps:
20+
- checkout
21+
- run:
22+
name: Validate Terraform configurations
23+
command: find . -type f -name "*.tf" -exec dirname {} \;|sort -u | while read m; do (terraform validate -check-variables=false "$m" && echo "√ $m") || exit 1 ; done
24+
25+
terraform-fmt:
26+
<<: *docker
27+
steps:
28+
- checkout
29+
- run:
30+
name: Check if Terraform configurations are properly formatted
31+
command: if [[ -n "$(terraform fmt -write=false)" ]]; then echo "Some terraform files need be formatted, run 'terraform fmt' to fix"; exit 1; fi
32+
33+
tflint:
34+
<<: *docker
35+
steps:
36+
- checkout
37+
- run:
38+
name: Check Terraform configurations with tflint
39+
command: |
40+
cd module
41+
tflint
42+
43+
kitchen-test:
44+
<<: *docker
45+
environment:
46+
BUNDLE_PATH: vendor/bundle
47+
AWS_REGION: us-east-1
48+
49+
steps:
50+
- checkout
51+
- restore_cache:
52+
keys:
53+
- terraform-aws-lambda-{{ checksum "Gemfile.lock" }}
54+
55+
- run:
56+
name: Bundle Install
57+
command: bundle check || bundle install
58+
59+
- save_cache:
60+
key: terraform-aws-lambda-{{ checksum "Gemfile.lock" }}
61+
paths:
62+
- vendor/bundle
63+
64+
- run:
65+
name: Run make to zip a function code
66+
command: make build
67+
68+
- run:
69+
name: Run kitchen test
70+
command: bundle exec kitchen test
71+
72+
workflows:
73+
version: 2
74+
tf-workflow:
75+
jobs:
76+
- terraform-init
77+
- terraform-validate:
78+
requires:
79+
- terraform-init
80+
- terraform-fmt:
81+
requires:
82+
- terraform-init
83+
- tflint:
84+
requires:
85+
- terraform-init
86+
- request-run:
87+
type: approval
88+
requires:
89+
- terraform-validate
90+
- terraform-fmt
91+
- tflint
92+
filters:
93+
branches:
94+
ignore: master
95+
- kitchen-test:
96+
requires:
97+
- request-run
98+
filters:
99+
branches:
100+
ignore: master

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.kitchen/
2+
.terraform/
3+
terraform.tfstate.d/
4+
test/fixtures/tf_module/function/*.zip
5+
out.terraform
6+
terraform.tfstate
7+
terraform.tfstate.backup

.kitchen.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
driver:
3+
name: terraform
4+
root_module_directory: test/fixtures/tf_module
5+
variable_files:
6+
- "test/fixtures/tf_module/testing.tfvars"
7+
parallelism: 4
8+
9+
provisioner:
10+
name: terraform
11+
12+
platforms:
13+
- name: aws
14+
15+
verifier:
16+
name: awsspec
17+
format: progress #doc
18+
19+
suites:
20+
- name: "default"
21+
verifier:
22+
name: "awspec"
23+
patterns:
24+
- "test/integration/default/test_lambda.rb"

.rubocop.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
AllCops:
2+
DefaultFormatter: clang
3+
DisplayCopNames: true
4+
Exclude:
5+
- bin/**/*
6+
- vendor/**/*
7+
TargetRubyVersion: 2.2
8+
Layout/IndentArray:
9+
Enabled: false
10+
Layout/IndentHash:
11+
Enabled: false
12+
EnforcedStyle: align_braces
13+
Layout/IndentHeredoc:
14+
Enabled: false
15+
Layout/MultilineBlockLayout:
16+
Enabled: false
17+
Layout/MultilineMethodCallIndentation:
18+
EnforcedStyle: indented_relative_to_receiver
19+
Layout/SpaceInsideHashLiteralBraces:
20+
EnforcedStyle: no_space
21+
Lint/AmbiguousOperator:
22+
Enabled: false
23+
Lint/AmbiguousRegexpLiteral:
24+
Enabled: false
25+
Lint/NonLocalExitFromIterator:
26+
Enabled: false
27+
Metrics/AbcSize:
28+
Enabled: false
29+
Metrics/BlockLength:
30+
Enabled: false
31+
Metrics/ClassLength:
32+
Enabled: false
33+
Metrics/LineLength:
34+
Max: 120
35+
Metrics/MethodLength:
36+
Enabled: false
37+
Metrics/ParameterLists:
38+
Enabled: false
39+
Style/AndOr:
40+
Enabled: false
41+
Style/BlockDelimiters:
42+
Enabled: false
43+
Style/ClassAndModuleChildren:
44+
EnforcedStyle: compact
45+
Style/ClassCheck:
46+
EnforcedStyle: kind_of?
47+
Style/Lambda:
48+
EnforcedStyle: lambda
49+
Style/MultilineBlockChain:
50+
Enabled: false
51+
Style/NegatedIf:
52+
Enabled: false
53+
Style/Not:
54+
Enabled: false
55+
Style/PercentLiteralDelimiters:
56+
Enabled: false
57+
Style/RegexpLiteral:
58+
AllowInnerSlashes: true
59+
EnforcedStyle: slashes
60+
Style/SymbolArray:
61+
EnforcedStyle: brackets
62+
Style/WordArray:
63+
EnforcedStyle: brackets

Gemfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
source 'https://rubygems.org/' do
2+
gem 'awspec'
3+
gem 'kitchen-terraform'
4+
gem 'kitchen-verifier-awspec'
5+
gem 'hcl-checker'
6+
end

0 commit comments

Comments
 (0)