|
| 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