run/rails/cloudbuild.yaml (41 lines of code) (raw):

# [START cloudrun_rails_cloudbuild] steps: - id: "build image" name: "gcr.io/cloud-builders/docker" entrypoint: 'bash' args: ["-c", "docker build --build-arg MASTER_KEY=$$RAILS_KEY -t ${_IMAGE_NAME} . "] secretEnv: ["RAILS_KEY"] - id: "push image" name: "gcr.io/cloud-builders/docker" args: ["push", "${_IMAGE_NAME}"] - id: "apply migrations" name: "gcr.io/google.com/cloudsdktool/cloud-sdk" entrypoint: /bin/bash secretEnv: ["RAILS_KEY"] args: - "-c" - | gcloud run jobs create migrate-job \ --region ${_REGION} \ --image ${_IMAGE_NAME} \ --set-cloudsql-instances ${_CLOUD_SQL_CONNECTION_NAME} \ --set-env-vars RAILS_MASTER_KEY=$$RAILS_KEY \ --command bundle \ --args exec,rails,db:migrate \ --execute-now --wait && \ gcloud run jobs delete migrate-job --region ${_REGION} -q options: dynamicSubstitutions: true substitutions: _REGION: us-central1 _SERVICE_NAME: rails-cat-album _INSTANCE_NAME: cat-album _SECRET_NAME: rails-master-key _AR_REPO_NAME: cloud-run-source-deploy _IMAGE_NAME: ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_AR_REPO_NAME}/${_SERVICE_NAME} _CLOUD_SQL_CONNECTION_NAME: ${PROJECT_ID}:${_REGION}:${_INSTANCE_NAME} availableSecrets: secretManager: - versionName: projects/${PROJECT_ID}/secrets/${_SECRET_NAME}/versions/latest env: RAILS_KEY images: - "${_IMAGE_NAME}" # [END cloudrun_rails_cloudbuild]