diff --git a/templates/gitlab-ci-gcloud.yml b/templates/gitlab-ci-gcloud.yml index 2c830d77bf46dd44391b2b5444681ac186aa7042..fddfd0548df49315cd574b86bb87d677c97214af 100644 --- a/templates/gitlab-ci-gcloud.yml +++ b/templates/gitlab-ci-gcloud.yml @@ -79,6 +79,15 @@ stages: fi } + function as_content() { + file_or_content=$1 + if [[ -f ${file_or_content} ]]; then + cat "${file_or_content}" + else + echo "${file_or_content}" + fi + } + function unscope_variables() { _scoped_vars=$(env | awk -F '=' "/^scoped__[a-zA-Z0-9_]+=/ {print \$1}" | sort) if [[ -z "$_scoped_vars" ]]; then return; fi @@ -344,7 +353,8 @@ stages: - *gcp-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KEY_FILE:-$GCP_KEY_FILE}" 'Missing required GCP key file (JSON)' - - gcloud auth activate-service-account --key-file ${ENV_KEY_FILE:-$GCP_KEY_FILE} + - as_content "${ENV_KEY_FILE:-$GCP_KEY_FILE}" > /tmp/gcp.key + - gcloud auth activate-service-account --key-file /tmp/gcp.key script: - deploy "$ENV_TYPE" "${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "$ENV_PROJECT" artifacts: @@ -373,7 +383,8 @@ stages: - *gcp-scripts - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}" - assert_defined "${ENV_KEY_FILE:-$GCP_KEY_FILE}" 'Missing required GCP key file (JSON)' - - gcloud auth activate-service-account --key-file ${ENV_KEY_FILE:-$GCP_KEY_FILE} + - as_content "${ENV_KEY_FILE:-$GCP_KEY_FILE}" > /tmp/gcp.key + - gcloud auth activate-service-account --key-file /tmp/gcp.key script: - delete "$ENV_TYPE" "${ENV_APP_NAME:-${GCP_BASE_APP_NAME}${ENV_APP_SUFFIX}}" "$ENV_PROJECT" environment: