Skip to content

Commit 196b087

Browse files
committed
Added codepipeline step builder
1 parent 411a8b9 commit 196b087

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

_infra/buildspec.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
version: 0.2
2+
3+
env:
4+
# ==================== #
5+
# Ref: SECRET CONFIG #
6+
# ==================== #
7+
parameter-store:
8+
BUILDNUMBER: /devopscorner/cicd/lab/repo/devopscorner-container/buildnumber
9+
STORE_AWS_ACCOUNT: /devopscorner/cicd/lab/credentials/aws_account
10+
STORE_AWS_ACCESS_KEY: /devopscorner/cicd/lab/credentials/aws_access_key
11+
STORE_AWS_SECRET_KEY: /devopscorner/cicd/lab/credentials/aws_secret_key
12+
STORE_REPO_USENAME: /devopscorner/cicd/lab/repo_credentials/codecommit/username
13+
STORE_REPO_PASSWORD: /devopscorner/cicd/lab/repo_credentials/codecommit/password_encoded
14+
STORE_DOCKERHUB_USERNAME: /devopscorner/cicd/lab/repo_credentials/dockerhub/username
15+
STORE_DOCKERHUB_PASSWORD: /devopscorner/cicd/lab/repo_credentials/dockerhub/password_encoded
16+
# ===================================== #
17+
# Ref: Pipeline Environment Variables #
18+
# ===================================== #
19+
variables:
20+
env_aws_account: "${AWS_ACCOUNT}"
21+
env_aws_access_key: "${AWS_ACCESS_KEY}"
22+
env_aws_secret_key: "${AWS_SECRET_KEY}"
23+
env_repo_username: "${REPO_USERNAME}"
24+
env_repo_pubkey: "${REPO_PUBKEY}" # base64 encoded
25+
env_dockerhub_username: "${DOCKERHUB_USERNAME}"
26+
env_dockerhub_password: "${DOCKERHUB_PASSWORD}"
27+
REPOSITORY: "https://github.com/devopscorner/devopscorner-container.git"
28+
PATH_REPO: "devops-container"
29+
30+
phase:
31+
install:
32+
commands:
33+
# Runtime Version
34+
# https://docs.aws.amazon.com/codebuild/latest/userguide/runtime-versions.html
35+
# https://docs.aws.amazon.com/codebuild/latest/userguide/available-runtimes.html
36+
runtime-versions:
37+
golang:1.16
38+
commands:
39+
- go version
40+
- echo $GOPATH
41+
- echo $GOROOT
42+
pre_build:
43+
commands:
44+
git clone $REPOSITORY $PATH_REPO
45+
cd $PATH_REPO
46+
find ./ -type f -exec sed -i "s/YOUR_AWS_ACCOUNT/${env_aws_account}/g" {} \;
47+
echo "- DONE -"
48+
build:
49+
commands:
50+
# ============= #
51+
# Build Image #
52+
#============== #
53+
- make build-cicd-alpine
54+
- export AWS_ACCESS_KEY=${env_aws_account}
55+
- export AWS_SECRET_KEY=${env_aws_secret_key}
56+
- make ecr-tag-alpine
57+
- echo "- DONE -"
58+
# ============ #
59+
# Push Image #
60+
#============= #
61+
- export AWS_ACCESS_KEY=${env_aws_account}
62+
- export AWS_SECRET_KEY=${env_aws_secret_key}
63+
- make ecr-push-alpine
64+
- echo "- DONE -"
65+
# =============== #
66+
# Save Artefact #
67+
#================ #
68+
- echo ">> Finishing (Save Artifacts)... "
69+
- export SNAPSHOT=$(date '+%Y%m%d-%H%M%S')
70+
- echo "Building Artifact..."
71+
- tar zcvf ./artifact-$SNAPSHOT.tgz compose/ scripts/ Makefile ./_infra/buildspec.yml run-docker.sh
72+
- echo "-- ALL DONE --"
73+
74+
artifacts:
75+
files:
76+
- "artifact-^[0-9]-^[0-9].tgz"
77+
name: "artifact-container"
78+
base-directory: /

0 commit comments

Comments
 (0)