Skip to content
This repository was archived by the owner on May 17, 2021. It is now read-only.

Commit 83f1702

Browse files
committed
Testing pipeline (#1)
* Add testing pipeline * rename prefix to name_prefix to be in line with standards * bump terraform version used by travis * Add improvements from template
1 parent 3ea5345 commit 83f1702

File tree

39 files changed

+1148
-95
lines changed

39 files changed

+1148
-95
lines changed

.ci/pipeline.yml

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
jobs:
2+
- name: deploy-deploy-bucket
3+
plan:
4+
- aggregate:
5+
- get: this-module
6+
trigger: true
7+
- task: inject-secrets
8+
params:
9+
directory: deploy-bucket
10+
AWS_ACCOUNT_ID: ((telia-divx-common-services-stage-account-id))
11+
KMS_KEY_ID: ((telia-divx-common-services-stage-state-bucket-key))
12+
file: this-module/.ci/tasks/inject-secrets/task.yml
13+
input_mapping: {source: this-module}
14+
output_mapping: {secret-source: source}
15+
- task: apply
16+
params:
17+
directory: deploy-bucket
18+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
19+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
20+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
21+
file: this-module/.ci/tasks/apply/task.yml
22+
output_mapping: {terraform-out: deploy-bucket-terraform-out}
23+
- task: build-lambdas
24+
file: this-module/.ci/tasks/build_lambdas/task.yml
25+
input_mapping: {source: this-module}
26+
- task: deploy-lambdas
27+
params:
28+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
29+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
30+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
31+
file: this-module/.ci/tasks/deploy-lambdas/task.yml
32+
33+
- name: test-default
34+
plan:
35+
- aggregate:
36+
- get: this-module
37+
trigger: true
38+
passed:
39+
- deploy-deploy-bucket
40+
- task: inject-secrets
41+
params:
42+
directory: default
43+
AWS_ACCOUNT_ID: ((telia-divx-common-services-stage-account-id))
44+
KMS_KEY_ID: ((telia-divx-common-services-stage-state-bucket-key))
45+
file: this-module/.ci/tasks/inject-secrets/task.yml
46+
input_mapping: {source: this-module}
47+
output_mapping: {secret-source: source}
48+
- task: apply
49+
params:
50+
directory: default
51+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
52+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
53+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
54+
file: this-module/.ci/tasks/apply/task.yml
55+
- task: test
56+
params:
57+
directory: default
58+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
59+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
60+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
61+
file: this-module/.ci/tasks/test/task.yml
62+
- task: destroy
63+
params:
64+
directory: default
65+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
66+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
67+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
68+
file: this-module/.ci/tasks/destroy/task.yml
69+
70+
- name: test-report-forwarding
71+
plan:
72+
- aggregate:
73+
- get: this-module
74+
trigger: true
75+
passed:
76+
- test-default
77+
- task: inject-secrets
78+
params:
79+
directory: report-forwarding
80+
AWS_ACCOUNT_ID: ((telia-divx-common-services-stage-account-id))
81+
KMS_KEY_ID: ((telia-divx-common-services-stage-state-bucket-key))
82+
file: this-module/.ci/tasks/inject-secrets/task.yml
83+
input_mapping: {source: this-module}
84+
output_mapping: {secret-source: source}
85+
- task: apply
86+
params:
87+
directory: report-forwarding
88+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
89+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
90+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
91+
file: this-module/.ci/tasks/apply/task.yml
92+
- task: test
93+
params:
94+
directory: report-forwarding
95+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
96+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
97+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
98+
file: this-module/.ci/tasks/test/task.yml
99+
- task: destroy
100+
params:
101+
directory: report-forwarding
102+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
103+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
104+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
105+
file: this-module/.ci/tasks/destroy/task.yml
106+
107+
- name: destroy-deploy-bucket
108+
plan:
109+
- aggregate:
110+
- get: this-module
111+
trigger: true
112+
passed:
113+
- test-report-forwarding
114+
- task: inject-secrets
115+
params:
116+
directory: deploy-bucket
117+
AWS_ACCOUNT_ID: ((telia-divx-common-services-stage-account-id))
118+
KMS_KEY_ID: ((telia-divx-common-services-stage-state-bucket-key))
119+
file: this-module/.ci/tasks/inject-secrets/task.yml
120+
input_mapping: {source: this-module}
121+
output_mapping: {secret-source: source}
122+
- task: get-terraform-out
123+
params:
124+
directory: deploy-bucket
125+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
126+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
127+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
128+
file: this-module/.ci/tasks/terraform-output/task.yml
129+
- task: purge-bucket
130+
params:
131+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
132+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
133+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
134+
file: this-module/.ci/tasks/purge-bucket/task.yml
135+
- task: destroy
136+
params:
137+
directory: deploy-bucket
138+
AWS_ACCESS_KEY_ID: ((telia-divx-common-services-stage-access-key))
139+
AWS_SECRET_ACCESS_KEY: ((telia-divx-common-services-stage-secret-key))
140+
AWS_SESSION_TOKEN: ((telia-divx-common-services-stage-session-token))
141+
file: this-module/.ci/tasks/destroy/task.yml
142+
143+
resources:
144+
- name: this-module
145+
type: git
146+
source:
147+
uri: [email protected]:telia-oss/terraform-aws-cost-and-usage-reports.git
148+
branch: master
149+
private_key: ((aws-common-services-deploy-key))
150+

.ci/tasks/apply/task.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
export DIR="${PWD}"
3+
cd ${DIR}/source/examples/${directory}
4+
terraform init
5+
terraform apply --auto-approve
6+
terraform output -json > ${DIR}/terraform-out/terraform-out.json

.ci/tasks/apply/task.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
platform: linux
2+
3+
image_resource:
4+
type: docker-image
5+
source:
6+
repository: hashicorp/terraform
7+
tag: "0.11.11"
8+
9+
params:
10+
directory:
11+
AWS_ACCESS_KEY_ID:
12+
AWS_SECRET_ACCESS_KEY:
13+
AWS_SESSION_TOKEN:
14+
15+
inputs:
16+
- name: source
17+
18+
outputs:
19+
- name: terraform-out
20+
21+
run:
22+
path: source/.ci/tasks/apply/task.sh

.ci/tasks/build_lambdas/task.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
mkdir -p source/dist
3+
source/docker/build.sh
4+
export DIR="${PWD}"
5+
cd source
6+
make build-csv-processor
7+
make build-manifest-processor
8+
make build-bucket-forwarder
9+
cp -a ${DIR}/source/. ${DIR}/built-source/

.ci/tasks/build_lambdas/task.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
platform: linux
2+
3+
image_resource:
4+
type: docker-image
5+
source:
6+
repository: amazonlinux
7+
tag: "2016.09"
8+
9+
inputs:
10+
- name: source
11+
12+
outputs:
13+
- name: built-source
14+
15+
run:
16+
path: source/.ci/tasks/build_lambdas/task.sh

.ci/tasks/deploy-lambdas/task.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
export DIR="${PWD}"
3+
export BUCKET=`cat deploy-bucket-terraform-out/terraform-out.json | jq -r '.lambda_deployment_bucket.value'`
4+
cd built-source
5+
make upload-lambda-billing-account
6+
make upload-lambda-processing-account

.ci/tasks/deploy-lambdas/task.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
platform: linux
2+
3+
image_resource:
4+
type: docker-image
5+
source:
6+
repository: teliaoss/concourse-awscli
7+
8+
params:
9+
AWS_ACCESS_KEY_ID:
10+
AWS_SECRET_ACCESS_KEY:
11+
AWS_SESSION_TOKEN:
12+
13+
inputs:
14+
- name: built-source
15+
- name: deploy-bucket-terraform-out
16+
17+
run:
18+
path: built-source/.ci/tasks/deploy-lambdas/task.sh

.ci/tasks/destroy/task.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
export DIR="${PWD}"
3+
cd ${DIR}/source/examples/${directory}
4+
rm -rf .terraform
5+
terraform init
6+
terraform destroy --auto-approve

.ci/tasks/destroy/task.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
platform: linux
2+
3+
image_resource:
4+
type: docker-image
5+
source:
6+
repository: hashicorp/terraform
7+
tag: "0.11.11"
8+
9+
params:
10+
directory:
11+
AWS_ACCESS_KEY_ID:
12+
AWS_SECRET_ACCESS_KEY:
13+
AWS_SESSION_TOKEN:
14+
15+
inputs:
16+
- name: source
17+
18+
run:
19+
path: source/.ci/tasks/destroy/task.sh

.ci/tasks/inject-secrets/task.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
export DIR="${PWD}"
3+
cp -a ${DIR}/source/. ${DIR}/secret-source/
4+
cd ${DIR}/secret-source/examples/${directory}
5+
sed -i 's#<test-account-id>#'${AWS_ACCOUNT_ID}'#g' main.tf
6+
sed -i 's#<kms-key-id>#'${KMS_KEY_ID}'#g' main.tf

0 commit comments

Comments
 (0)