|
| 1 | +# Timestamp to be shared by all deploy jobs in the pipeline |
| 2 | +create_timestamp: |
| 3 | + stage: .pre |
| 4 | + variables: |
| 5 | + GIT_STRATEGY: none |
| 6 | + script: |
| 7 | + - export TIMESTAMP=$(date +%Y%m%d%H%M%S) |
| 8 | + - echo "TIMESTAMP=${TIMESTAMP}" >> timestamp.env |
| 9 | + - echo "Generated timestamp ${TIMESTAMP}" |
| 10 | + artifacts: |
| 11 | + reports: |
| 12 | + dotenv: timestamp.env |
| 13 | + |
| 14 | +.auth_gcp: |
| 15 | + variables: |
| 16 | + PROJECT_NUMBER: 697214616889 |
| 17 | + POOL_ID: gitlab-2f4bb583 |
| 18 | + PROVIDER_ID: gitlab |
| 19 | + SERVICE_ACCOUNT_EMAIL: gitlab-cicd@green-backend.iam.gserviceaccount.com |
| 20 | + id_tokens: |
| 21 | + GITLAB_OIDC_TOKEN: |
| 22 | + aud: https://gl.blockstream.io |
| 23 | + before_script: |
| 24 | + - echo ${GITLAB_OIDC_TOKEN} > .ci_job_jwt_file |
| 25 | + - export PATH=/opt/google-cloud-sdk/bin:$PATH |
| 26 | + - gcloud iam workload-identity-pools create-cred-config "projects/${PROJECT_NUMBER}/locations/global/workloadIdentityPools/${POOL_ID}/providers/${PROVIDER_ID}" |
| 27 | + --service-account="${SERVICE_ACCOUNT_EMAIL}" |
| 28 | + --output-file=.gcp_temp_cred.json |
| 29 | + --credential-source-file=.ci_job_jwt_file |
| 30 | + - gcloud auth login --cred-file=.gcp_temp_cred.json --update-adc |
| 31 | + - gcloud auth list |
| 32 | + - gcloud auth configure-docker ${REGION}-docker.pkg.dev |
| 33 | + |
| 34 | +.build_docker: |
| 35 | + stage: build |
| 36 | + when: manual |
| 37 | + script: |
| 38 | + - PLATFORM=linux/${ARCH} |
| 39 | + - TAG=${CI_COMMIT_SHORT_SHA}-${TIMESTAMP} |
| 40 | + - echo "Using timestamp ${TIMESTAMP} and tag ${TAG}" |
| 41 | + - GAR_IMAGE=${IMAGE} |
| 42 | + - GAR_IMAGE_LATEST=${GAR_IMAGE}:latest |
| 43 | + - GAR_IMAGE_TAG=${GAR_IMAGE}:${TAG} |
| 44 | + - docker buildx create |
| 45 | + --driver=docker-container |
| 46 | + --name=buildkit-builder |
| 47 | + --use |
| 48 | + --platform ${PLATFORM} |
| 49 | + - docker buildx build |
| 50 | + --platform ${PLATFORM} |
| 51 | + --cache-from ${GAR_IMAGE_LATEST} |
| 52 | + --load |
| 53 | + -f ${DOCKERFILE} |
| 54 | + -t ${GAR_IMAGE_LATEST} |
| 55 | + -t ${GAR_IMAGE_TAG} . |
| 56 | + - docker push ${GAR_IMAGE_TAG} |
| 57 | + - echo "pushed ${GAR_IMAGE_TAG}" |
| 58 | + - if [ ${CI_COMMIT_BRANCH} == ${CI_DEFAULT_BRANCH} ]; then docker push ${GAR_IMAGE_LATEST}; echo "pushed ${GAR_IMAGE_LATEST}"; fi |
0 commit comments