pfe-adv-sep/lab-02/cloudbuild.yaml (53 lines of code) (raw):
steps:
- name: 'python:3.12-alpine'
entrypoint: 'sh'
args:
- '-c'
- |
pip install -r requirements.txt
pip install flake8
flake8 .
- name: 'python:3.12-alpine'
entrypoint: 'sh'
args:
- '-c'
- |
pip install -r requirements.txt
python -m unittest discover
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'asia-northeast1-docker.pkg.dev/$PROJECT_ID/app-repo/pets:v2', '.']
- id: 'dockerfile-scan'
name: 'aquasec/trivy'
entrypoint: '/bin/sh'
args:
- '-c'
- |
trivy config ./Dockerfile --severity HIGH
- id: 'image-scan'
name: 'aquasec/trivy'
entrypoint: '/bin/sh'
args:
- '-c'
- |
trivy image --severity CRITICAL ${_REPO_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_IMAGE_NAME}:${_TAG} --exit-code 1
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'asia-northeast1-docker.pkg.dev/$PROJECT_ID/app-repo/pets:v2']
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
- |
sed -i "s|image: .*|image: asia-northeast1-docker.pkg.dev/$PROJECT_ID/app-repo/pets:v2|g" kubernetes-manifests/deployment.yaml
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
- |
gcloud deploy releases create release-$(date +%Y%m%d%H%M%S) --delivery-pipeline=pfe-cicd --region=asia-northeast1 --source=./ --project=$PROJECT_ID
images:
- 'asia-northeast1-docker.pkg.dev/$PROJECT_ID/app-repo/pets:v2'
substitutions:
_REPO_REGION: asia-northeast1
_REPO_NAME: app-repo
_IMAGE_NAME: pets
_TAG: v2