@catladder/pipeline 2.9.3 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +1 -1
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +5 -3
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +17 -101
- package/dist/deploy/cloudRun/createJobs/execute/onDeploy.d.ts +4 -0
- package/dist/deploy/cloudRun/createJobs/execute/onDeploy.js +120 -0
- package/dist/deploy/cloudRun/createJobs/execute/schedules.d.ts +3 -0
- package/dist/deploy/cloudRun/createJobs/execute/schedules.js +173 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +4 -2
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +4 -2
- package/dist/deploy/cloudRun/index.js +6 -2
- package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.d.ts +10 -0
- package/dist/deploy/cloudRun/utils/cloudRunExecutionUrl.js +16 -0
- package/dist/deploy/cloudRun/utils/jobName.d.ts +5 -1
- package/dist/deploy/cloudRun/utils/jobName.js +14 -2
- package/dist/deploy/types/googleCloudRun.d.ts +95 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +1697 -0
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +133 -70
- package/examples/cloud-run-no-service.ts +6 -0
- package/examples/cloud-run-post-stop-job.ts +7 -0
- package/examples/cloud-run-service-custom-vpc-connector.ts +0 -1
- package/examples/cloud-run-service-custom-vpc.ts +0 -1
- package/examples/cloud-run-service-with-volumes.ts +9 -1
- package/examples/cloud-run-with-sql-legacy-jobs.test.ts +11 -0
- package/examples/cloud-run-with-sql-legacy-jobs.ts +49 -0
- package/examples/cloud-run-with-sql.ts +38 -4
- package/package.json +1 -1
- package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +16 -155
- package/src/deploy/cloudRun/createJobs/execute/onDeploy.ts +112 -0
- package/src/deploy/cloudRun/createJobs/execute/schedules.ts +186 -0
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +6 -8
- package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +6 -8
- package/src/deploy/cloudRun/index.ts +6 -6
- package/src/deploy/cloudRun/utils/cloudRunExecutionUrl.ts +20 -0
- package/src/deploy/cloudRun/utils/jobName.ts +16 -1
- package/src/deploy/types/googleCloudRun.ts +123 -1
|
@@ -202,13 +202,13 @@ api 🧪 test:
|
|
|
202
202
|
- export DB_PASSWORD="$CL_dev_api_DB_PASSWORD"
|
|
203
203
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
204
204
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
205
|
-
- export
|
|
205
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-migrate:run"
|
|
206
206
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run"
|
|
207
207
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
208
208
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
209
209
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_dev_api_GCLOUD_DEPLOY_credentialsKey"
|
|
210
210
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
211
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
211
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
212
212
|
- collapseable_section_end "injectvars"
|
|
213
213
|
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
214
214
|
- |-
|
|
@@ -226,13 +226,13 @@ api 🧪 test:
|
|
|
226
226
|
DB_PASSWORD=$(printf %s "$CL_dev_api_DB_PASSWORD" | escapeForDotEnv)
|
|
227
227
|
DATABASE_URL=postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
228
228
|
DATABASE_JDBC_URL=jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
229
|
-
|
|
229
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-migrate:run
|
|
230
230
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run
|
|
231
231
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
232
232
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
233
233
|
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
234
234
|
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
235
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
235
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
236
236
|
EOF
|
|
237
237
|
- collapseable_section_end "write-dotenv-api"
|
|
238
238
|
- echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
|
|
@@ -373,13 +373,13 @@ api 🧪 test:
|
|
|
373
373
|
- export DB_PASSWORD="$CL_dev_api_DB_PASSWORD"
|
|
374
374
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
375
375
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
376
|
-
- export
|
|
376
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-migrate:run"
|
|
377
377
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run"
|
|
378
378
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
379
379
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
380
380
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_dev_api_GCLOUD_DEPLOY_credentialsKey"
|
|
381
381
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
382
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
382
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
383
383
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
384
384
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api"
|
|
385
385
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
@@ -426,8 +426,8 @@ api 🧪 test:
|
|
|
426
426
|
postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
427
427
|
DATABASE_JDBC_URL: |-
|
|
428
428
|
jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
429
|
-
|
|
430
|
-
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-
|
|
429
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate: |-
|
|
430
|
+
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-migrate:run
|
|
431
431
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders: |-
|
|
432
432
|
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run
|
|
433
433
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
@@ -437,7 +437,7 @@ api 🧪 test:
|
|
|
437
437
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
438
438
|
$(printf %s "$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
439
439
|
_ALL_ENV_VAR_KEYS: |-
|
|
440
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
440
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
441
441
|
|
|
442
442
|
EOF
|
|
443
443
|
- collapseable_section_end "writeenvvars"
|
|
@@ -451,17 +451,33 @@ api 🧪 test:
|
|
|
451
451
|
gcloud scheduler jobs list --filter='httpTarget.uri ~ dev.*api' --format='value(name)' --limit=999 --location='europe-west6' --project='google-project-id'
|
|
452
452
|
)"
|
|
453
453
|
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run"
|
|
454
|
-
current_scheduler_name="pan-test-app-dev-api-send-reminders-
|
|
454
|
+
current_scheduler_name="pan-test-app-dev-api-send-reminders-admins"
|
|
455
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
456
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
457
|
+
else
|
|
458
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
459
|
+
fi
|
|
460
|
+
- |-
|
|
461
|
+
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-dev-api-send-reminders:run"
|
|
462
|
+
current_scheduler_name="pan-test-app-dev-api-send-reminders"
|
|
455
463
|
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
456
464
|
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
457
465
|
else
|
|
458
466
|
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
459
467
|
fi
|
|
468
|
+
- |-
|
|
469
|
+
current_job_uri="\${ROOT_URL}/myEndpoint"
|
|
470
|
+
current_scheduler_name="pan-test-app-dev-api-call-http-endpoint"
|
|
471
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
472
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
473
|
+
else
|
|
474
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
475
|
+
fi
|
|
460
476
|
- |-
|
|
461
477
|
exist_job_names="$(
|
|
462
478
|
gcloud run jobs list --filter='metadata.name ~ dev.*api' --format='value(name)' --limit=999 --project='google-project-id' --region='europe-west6'
|
|
463
479
|
)"
|
|
464
|
-
current_job_name="pan-test-app-dev-api-
|
|
480
|
+
current_job_name="pan-test-app-dev-api-migrate"
|
|
465
481
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
466
482
|
gcloud run jobs update "$current_job_name" --command="yarn,migrate" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
467
483
|
else
|
|
@@ -470,11 +486,11 @@ api 🧪 test:
|
|
|
470
486
|
- |-
|
|
471
487
|
current_job_name="pan-test-app-dev-api-send-reminders"
|
|
472
488
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
473
|
-
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
489
|
+
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
474
490
|
else
|
|
475
|
-
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
491
|
+
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
476
492
|
fi
|
|
477
|
-
- gcloud run jobs execute pan-test-app-dev-api-
|
|
493
|
+
- gcloud run jobs execute pan-test-app-dev-api-migrate --project=google-project-id --region=europe-west6 --wait --args="--verbose=true","--create-db"
|
|
478
494
|
- gcloud run deploy pan-test-app-dev-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --set-cloudsql-instances=projectId:region:instancename --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-service-name=pan-test-app-dev-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=5 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
479
495
|
- collapseable_section_end "deploy"
|
|
480
496
|
- collapseable_section_start "cleanup" "Cleanup"
|
|
@@ -527,9 +543,11 @@ api 🧪 test:
|
|
|
527
543
|
- set +e
|
|
528
544
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey")
|
|
529
545
|
- gcloud run services delete pan-test-app-dev-api --project=google-project-id --region=europe-west6
|
|
530
|
-
- gcloud scheduler jobs delete pan-test-app-dev-api-send-reminders-
|
|
531
|
-
- gcloud
|
|
532
|
-
- gcloud
|
|
546
|
+
- gcloud scheduler jobs delete pan-test-app-dev-api-send-reminders-admins --project=google-project-id --location=europe-west6
|
|
547
|
+
- gcloud scheduler jobs delete pan-test-app-dev-api-send-reminders --project=google-project-id --location=europe-west6
|
|
548
|
+
- gcloud scheduler jobs delete pan-test-app-dev-api-call-http-endpoint --project=google-project-id --location=europe-west6
|
|
549
|
+
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-dev-api-migrate --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
550
|
+
- gcloud run jobs delete pan-test-app-dev-api-migrate --project=google-project-id --region=europe-west6
|
|
533
551
|
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-dev-api-send-reminders --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
534
552
|
- gcloud run jobs delete pan-test-app-dev-api-send-reminders --project=google-project-id --region=europe-west6
|
|
535
553
|
- gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api --quiet --delete-tags
|
|
@@ -574,13 +592,13 @@ api 🧪 test:
|
|
|
574
592
|
- export DB_PASSWORD="$CL_review_api_DB_PASSWORD"
|
|
575
593
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
576
594
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
577
|
-
- export
|
|
595
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s \\"pan-test-app-review-$([ -n \\"$CI_MERGE_REQUEST_IID\\" ] && echo \\"mr$CI_MERGE_REQUEST_IID\\" || { [ -n \\"$CI_COMMIT_REF_SLUG\\" ] && echo \\"$CI_COMMIT_REF_SLUG\\" || echo \\"unknown\\"; })-api\\" | awk '{print tolower($0)}')-migrate:run"
|
|
578
596
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s \\"pan-test-app-review-$([ -n \\"$CI_MERGE_REQUEST_IID\\" ] && echo \\"mr$CI_MERGE_REQUEST_IID\\" || { [ -n \\"$CI_COMMIT_REF_SLUG\\" ] && echo \\"$CI_COMMIT_REF_SLUG\\" || echo \\"unknown\\"; })-api\\" | awk '{print tolower($0)}')-send-reminders:run"
|
|
579
597
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
580
598
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
581
599
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_review_api_GCLOUD_DEPLOY_credentialsKey"
|
|
582
600
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_review_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
583
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
601
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
584
602
|
- collapseable_section_end "injectvars"
|
|
585
603
|
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
586
604
|
- |-
|
|
@@ -598,13 +616,13 @@ api 🧪 test:
|
|
|
598
616
|
DB_PASSWORD=$(printf %s "$CL_review_api_DB_PASSWORD" | escapeForDotEnv)
|
|
599
617
|
DATABASE_URL=postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
600
618
|
DATABASE_JDBC_URL=jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
601
|
-
|
|
619
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate:run
|
|
602
620
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders:run
|
|
603
621
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
604
622
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
605
623
|
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_review_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
606
624
|
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
607
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
625
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
608
626
|
EOF
|
|
609
627
|
- collapseable_section_end "write-dotenv-api"
|
|
610
628
|
- echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
|
|
@@ -745,13 +763,13 @@ api 🧪 test:
|
|
|
745
763
|
- export DB_PASSWORD="$CL_review_api_DB_PASSWORD"
|
|
746
764
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
747
765
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
748
|
-
- export
|
|
766
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s \\"pan-test-app-review-$([ -n \\"$CI_MERGE_REQUEST_IID\\" ] && echo \\"mr$CI_MERGE_REQUEST_IID\\" || { [ -n \\"$CI_COMMIT_REF_SLUG\\" ] && echo \\"$CI_COMMIT_REF_SLUG\\" || echo \\"unknown\\"; })-api\\" | awk '{print tolower($0)}')-migrate:run"
|
|
749
767
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s \\"pan-test-app-review-$([ -n \\"$CI_MERGE_REQUEST_IID\\" ] && echo \\"mr$CI_MERGE_REQUEST_IID\\" || { [ -n \\"$CI_COMMIT_REF_SLUG\\" ] && echo \\"$CI_COMMIT_REF_SLUG\\" || echo \\"unknown\\"; })-api\\" | awk '{print tolower($0)}')-send-reminders:run"
|
|
750
768
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
751
769
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
752
770
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_review_api_GCLOUD_DEPLOY_credentialsKey"
|
|
753
771
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_review_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
754
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
772
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
755
773
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
756
774
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })"
|
|
757
775
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
@@ -798,8 +816,8 @@ api 🧪 test:
|
|
|
798
816
|
postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
799
817
|
DATABASE_JDBC_URL: |-
|
|
800
818
|
jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
801
|
-
|
|
802
|
-
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-
|
|
819
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate: |-
|
|
820
|
+
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate:run
|
|
803
821
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders: |-
|
|
804
822
|
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders:run
|
|
805
823
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
@@ -809,7 +827,7 @@ api 🧪 test:
|
|
|
809
827
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
810
828
|
$(printf %s "$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
811
829
|
_ALL_ENV_VAR_KEYS: |-
|
|
812
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
830
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
813
831
|
|
|
814
832
|
EOF
|
|
815
833
|
- collapseable_section_end "writeenvvars"
|
|
@@ -823,17 +841,25 @@ api 🧪 test:
|
|
|
823
841
|
gcloud scheduler jobs list --filter='httpTarget.uri ~ review.*api' --format='value(name)' --limit=999 --location='europe-west6' --project='google-project-id'
|
|
824
842
|
)"
|
|
825
843
|
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders:run"
|
|
826
|
-
current_scheduler_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders-
|
|
844
|
+
current_scheduler_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders-admins"
|
|
827
845
|
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
828
|
-
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
846
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
829
847
|
else
|
|
830
|
-
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
848
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
849
|
+
fi
|
|
850
|
+
- |-
|
|
851
|
+
current_job_uri="\${ROOT_URL}/myEndpoint"
|
|
852
|
+
current_scheduler_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-call-http-endpoint"
|
|
853
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
854
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
855
|
+
else
|
|
856
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
831
857
|
fi
|
|
832
858
|
- |-
|
|
833
859
|
exist_job_names="$(
|
|
834
860
|
gcloud run jobs list --filter='metadata.name ~ review.*api' --format='value(name)' --limit=999 --project='google-project-id' --region='europe-west6'
|
|
835
861
|
)"
|
|
836
|
-
current_job_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-
|
|
862
|
+
current_job_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate"
|
|
837
863
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
838
864
|
gcloud run jobs update "$current_job_name" --command="yarn,migrate" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
839
865
|
else
|
|
@@ -842,11 +868,11 @@ api 🧪 test:
|
|
|
842
868
|
- |-
|
|
843
869
|
current_job_name="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders"
|
|
844
870
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
845
|
-
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
871
|
+
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
846
872
|
else
|
|
847
|
-
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
873
|
+
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
848
874
|
fi
|
|
849
|
-
- gcloud run jobs execute $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-
|
|
875
|
+
- gcloud run jobs execute $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate --project=google-project-id --region=europe-west6 --wait --args="--verbose=true","--create-db"
|
|
850
876
|
- gcloud run deploy $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}') --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --set-cloudsql-instances=projectId:region:instancename --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,cloud-run-service-name=$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}') --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=5 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
851
877
|
- collapseable_section_end "deploy"
|
|
852
878
|
- collapseable_section_start "cleanup" "Cleanup"
|
|
@@ -902,9 +928,10 @@ api 🧪 test:
|
|
|
902
928
|
- set +e
|
|
903
929
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_api_GCLOUD_DEPLOY_credentialsKey")
|
|
904
930
|
- gcloud run services delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}') --project=google-project-id --region=europe-west6
|
|
905
|
-
- gcloud scheduler jobs delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders-
|
|
906
|
-
- gcloud
|
|
907
|
-
- gcloud run jobs
|
|
931
|
+
- gcloud scheduler jobs delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders-admins --project=google-project-id --location=europe-west6
|
|
932
|
+
- gcloud scheduler jobs delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-call-http-endpoint --project=google-project-id --location=europe-west6
|
|
933
|
+
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
934
|
+
- gcloud run jobs delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-migrate --project=google-project-id --region=europe-west6
|
|
908
935
|
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
909
936
|
- gcloud run jobs delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api" | awk '{print tolower($0)}')-send-reminders --project=google-project-id --region=europe-west6
|
|
910
937
|
- echo "deleting database pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api..."
|
|
@@ -955,13 +982,13 @@ api 🧪 test:
|
|
|
955
982
|
- export DB_PASSWORD="$CL_stage_api_DB_PASSWORD"
|
|
956
983
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
957
984
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
958
|
-
- export
|
|
985
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-migrate:run"
|
|
959
986
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run"
|
|
960
987
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
961
988
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
962
989
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_stage_api_GCLOUD_DEPLOY_credentialsKey"
|
|
963
990
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
964
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
991
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
965
992
|
- collapseable_section_end "injectvars"
|
|
966
993
|
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
967
994
|
- |-
|
|
@@ -979,13 +1006,13 @@ api 🧪 test:
|
|
|
979
1006
|
DB_PASSWORD=$(printf %s "$CL_stage_api_DB_PASSWORD" | escapeForDotEnv)
|
|
980
1007
|
DATABASE_URL=postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
981
1008
|
DATABASE_JDBC_URL=jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
982
|
-
|
|
1009
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-migrate:run
|
|
983
1010
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run
|
|
984
1011
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
985
1012
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
986
1013
|
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
987
1014
|
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
988
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
1015
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
989
1016
|
EOF
|
|
990
1017
|
- collapseable_section_end "write-dotenv-api"
|
|
991
1018
|
- echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
|
|
@@ -1126,13 +1153,13 @@ api 🧪 test:
|
|
|
1126
1153
|
- export DB_PASSWORD="$CL_stage_api_DB_PASSWORD"
|
|
1127
1154
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
1128
1155
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
1129
|
-
- export
|
|
1156
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-migrate:run"
|
|
1130
1157
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run"
|
|
1131
1158
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1132
1159
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1133
1160
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_stage_api_GCLOUD_DEPLOY_credentialsKey"
|
|
1134
1161
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
1135
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
1162
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
1136
1163
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1137
1164
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api"
|
|
1138
1165
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
@@ -1179,8 +1206,8 @@ api 🧪 test:
|
|
|
1179
1206
|
postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
1180
1207
|
DATABASE_JDBC_URL: |-
|
|
1181
1208
|
jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
1182
|
-
|
|
1183
|
-
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-
|
|
1209
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate: |-
|
|
1210
|
+
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-migrate:run
|
|
1184
1211
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders: |-
|
|
1185
1212
|
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run
|
|
1186
1213
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
@@ -1190,7 +1217,7 @@ api 🧪 test:
|
|
|
1190
1217
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1191
1218
|
$(printf %s "$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1192
1219
|
_ALL_ENV_VAR_KEYS: |-
|
|
1193
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
1220
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1194
1221
|
|
|
1195
1222
|
EOF
|
|
1196
1223
|
- collapseable_section_end "writeenvvars"
|
|
@@ -1204,17 +1231,33 @@ api 🧪 test:
|
|
|
1204
1231
|
gcloud scheduler jobs list --filter='httpTarget.uri ~ stage.*api' --format='value(name)' --limit=999 --location='europe-west6' --project='google-project-id'
|
|
1205
1232
|
)"
|
|
1206
1233
|
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run"
|
|
1207
|
-
current_scheduler_name="pan-test-app-stage-api-send-reminders-
|
|
1234
|
+
current_scheduler_name="pan-test-app-stage-api-send-reminders-admins"
|
|
1235
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1236
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1237
|
+
else
|
|
1238
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1239
|
+
fi
|
|
1240
|
+
- |-
|
|
1241
|
+
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-stage-api-send-reminders:run"
|
|
1242
|
+
current_scheduler_name="pan-test-app-stage-api-send-reminders"
|
|
1208
1243
|
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1209
1244
|
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1210
1245
|
else
|
|
1211
1246
|
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1212
1247
|
fi
|
|
1248
|
+
- |-
|
|
1249
|
+
current_job_uri="\${ROOT_URL}/myEndpoint"
|
|
1250
|
+
current_scheduler_name="pan-test-app-stage-api-call-http-endpoint"
|
|
1251
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1252
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1253
|
+
else
|
|
1254
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1255
|
+
fi
|
|
1213
1256
|
- |-
|
|
1214
1257
|
exist_job_names="$(
|
|
1215
1258
|
gcloud run jobs list --filter='metadata.name ~ stage.*api' --format='value(name)' --limit=999 --project='google-project-id' --region='europe-west6'
|
|
1216
1259
|
)"
|
|
1217
|
-
current_job_name="pan-test-app-stage-api-
|
|
1260
|
+
current_job_name="pan-test-app-stage-api-migrate"
|
|
1218
1261
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
1219
1262
|
gcloud run jobs update "$current_job_name" --command="yarn,migrate" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1220
1263
|
else
|
|
@@ -1223,11 +1266,11 @@ api 🧪 test:
|
|
|
1223
1266
|
- |-
|
|
1224
1267
|
current_job_name="pan-test-app-stage-api-send-reminders"
|
|
1225
1268
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
1226
|
-
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
1269
|
+
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1227
1270
|
else
|
|
1228
|
-
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
1271
|
+
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1229
1272
|
fi
|
|
1230
|
-
- gcloud run jobs execute pan-test-app-stage-api-
|
|
1273
|
+
- gcloud run jobs execute pan-test-app-stage-api-migrate --project=google-project-id --region=europe-west6 --wait --args="--verbose=true","--create-db"
|
|
1231
1274
|
- gcloud run deploy pan-test-app-stage-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --set-cloudsql-instances=projectId:region:instancename --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-service-name=pan-test-app-stage-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=5 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
1232
1275
|
- collapseable_section_end "deploy"
|
|
1233
1276
|
- collapseable_section_start "cleanup" "Cleanup"
|
|
@@ -1273,9 +1316,11 @@ api 🧪 test:
|
|
|
1273
1316
|
- set +e
|
|
1274
1317
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1275
1318
|
- gcloud run services delete pan-test-app-stage-api --project=google-project-id --region=europe-west6
|
|
1276
|
-
- gcloud scheduler jobs delete pan-test-app-stage-api-send-reminders-
|
|
1277
|
-
- gcloud
|
|
1278
|
-
- gcloud
|
|
1319
|
+
- gcloud scheduler jobs delete pan-test-app-stage-api-send-reminders-admins --project=google-project-id --location=europe-west6
|
|
1320
|
+
- gcloud scheduler jobs delete pan-test-app-stage-api-send-reminders --project=google-project-id --location=europe-west6
|
|
1321
|
+
- gcloud scheduler jobs delete pan-test-app-stage-api-call-http-endpoint --project=google-project-id --location=europe-west6
|
|
1322
|
+
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-stage-api-migrate --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
1323
|
+
- gcloud run jobs delete pan-test-app-stage-api-migrate --project=google-project-id --region=europe-west6
|
|
1279
1324
|
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-stage-api-send-reminders --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
1280
1325
|
- gcloud run jobs delete pan-test-app-stage-api-send-reminders --project=google-project-id --region=europe-west6
|
|
1281
1326
|
- gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api --quiet --delete-tags
|
|
@@ -1320,13 +1365,13 @@ api 🧪 test:
|
|
|
1320
1365
|
- export DB_PASSWORD="$CL_prod_api_DB_PASSWORD"
|
|
1321
1366
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
1322
1367
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
1323
|
-
- export
|
|
1368
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-migrate:run"
|
|
1324
1369
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run"
|
|
1325
1370
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1326
1371
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1327
1372
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_prod_api_GCLOUD_DEPLOY_credentialsKey"
|
|
1328
1373
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
1329
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
1374
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
1330
1375
|
- collapseable_section_end "injectvars"
|
|
1331
1376
|
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
1332
1377
|
- |-
|
|
@@ -1344,13 +1389,13 @@ api 🧪 test:
|
|
|
1344
1389
|
DB_PASSWORD=$(printf %s "$CL_prod_api_DB_PASSWORD" | escapeForDotEnv)
|
|
1345
1390
|
DATABASE_URL=postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
1346
1391
|
DATABASE_JDBC_URL=jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
1347
|
-
|
|
1392
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-migrate:run
|
|
1348
1393
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders=https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run
|
|
1349
1394
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
1350
1395
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
1351
1396
|
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
1352
1397
|
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
1353
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
1398
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1354
1399
|
EOF
|
|
1355
1400
|
- collapseable_section_end "write-dotenv-api"
|
|
1356
1401
|
- echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
|
|
@@ -1491,13 +1536,13 @@ api 🧪 test:
|
|
|
1491
1536
|
- export DB_PASSWORD="$CL_prod_api_DB_PASSWORD"
|
|
1492
1537
|
- export DATABASE_URL="postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME"
|
|
1493
1538
|
- export DATABASE_JDBC_URL="jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD"
|
|
1494
|
-
- export
|
|
1539
|
+
- export CLOUD_RUN_JOB_TRIGGER_URL_migrate="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-migrate:run"
|
|
1495
1540
|
- export CLOUD_RUN_JOB_TRIGGER_URL_send_reminders="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run"
|
|
1496
1541
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1497
1542
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1498
1543
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_prod_api_GCLOUD_DEPLOY_credentialsKey"
|
|
1499
1544
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
1500
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"
|
|
1545
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"CLOUD_SQL_INSTANCE_CONNECTION_NAME\\",\\"DB_NAME\\",\\"DB_USER\\",\\"DB_PASSWORD\\",\\"DATABASE_URL\\",\\"DATABASE_JDBC_URL\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_migrate\\",\\"CLOUD_RUN_JOB_TRIGGER_URL_send_reminders\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
1501
1546
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1502
1547
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api"
|
|
1503
1548
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
@@ -1544,8 +1589,8 @@ api 🧪 test:
|
|
|
1544
1589
|
postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME
|
|
1545
1590
|
DATABASE_JDBC_URL: |-
|
|
1546
1591
|
jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD
|
|
1547
|
-
|
|
1548
|
-
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-
|
|
1592
|
+
CLOUD_RUN_JOB_TRIGGER_URL_migrate: |-
|
|
1593
|
+
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-migrate:run
|
|
1549
1594
|
CLOUD_RUN_JOB_TRIGGER_URL_send_reminders: |-
|
|
1550
1595
|
https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run
|
|
1551
1596
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
@@ -1555,7 +1600,7 @@ api 🧪 test:
|
|
|
1555
1600
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1556
1601
|
$(printf %s "$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1557
1602
|
_ALL_ENV_VAR_KEYS: |-
|
|
1558
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","
|
|
1603
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","CLOUD_SQL_INSTANCE_CONNECTION_NAME","DB_NAME","DB_USER","DB_PASSWORD","DATABASE_URL","DATABASE_JDBC_URL","CLOUD_RUN_JOB_TRIGGER_URL_migrate","CLOUD_RUN_JOB_TRIGGER_URL_send_reminders","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1559
1604
|
|
|
1560
1605
|
EOF
|
|
1561
1606
|
- collapseable_section_end "writeenvvars"
|
|
@@ -1569,17 +1614,33 @@ api 🧪 test:
|
|
|
1569
1614
|
gcloud scheduler jobs list --filter='httpTarget.uri ~ prod.*api' --format='value(name)' --limit=999 --location='europe-west6' --project='google-project-id'
|
|
1570
1615
|
)"
|
|
1571
1616
|
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run"
|
|
1572
|
-
current_scheduler_name="pan-test-app-prod-api-send-reminders-
|
|
1617
|
+
current_scheduler_name="pan-test-app-prod-api-send-reminders-admins"
|
|
1618
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1619
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1620
|
+
else
|
|
1621
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --message-body="{\\"overrides\\":{\\"containerOverrides\\":[{\\"args\\":[\\"--only-admins\\",\\"--verbose=true\\"]}]}}" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1622
|
+
fi
|
|
1623
|
+
- |-
|
|
1624
|
+
current_job_uri="https://europe-west6-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/google-project-id/jobs/pan-test-app-prod-api-send-reminders:run"
|
|
1625
|
+
current_scheduler_name="pan-test-app-prod-api-send-reminders"
|
|
1573
1626
|
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1574
1627
|
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1575
1628
|
else
|
|
1576
1629
|
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=POST --oauth-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1577
1630
|
fi
|
|
1631
|
+
- |-
|
|
1632
|
+
current_job_uri="\${ROOT_URL}/myEndpoint"
|
|
1633
|
+
current_scheduler_name="pan-test-app-prod-api-call-http-endpoint"
|
|
1634
|
+
if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then
|
|
1635
|
+
gcloud scheduler jobs update http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1636
|
+
else
|
|
1637
|
+
gcloud scheduler jobs create http "$current_scheduler_name" --project=google-project-id --location=europe-west6 --uri="$current_job_uri" --http-method=GET --oidc-service-account-email="$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com" --schedule="0 * * * *" --max-retry-attempts=0
|
|
1638
|
+
fi
|
|
1578
1639
|
- |-
|
|
1579
1640
|
exist_job_names="$(
|
|
1580
1641
|
gcloud run jobs list --filter='metadata.name ~ prod.*api' --format='value(name)' --limit=999 --project='google-project-id' --region='europe-west6'
|
|
1581
1642
|
)"
|
|
1582
|
-
current_job_name="pan-test-app-prod-api-
|
|
1643
|
+
current_job_name="pan-test-app-prod-api-migrate"
|
|
1583
1644
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
1584
1645
|
gcloud run jobs update "$current_job_name" --command="yarn,migrate" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1585
1646
|
else
|
|
@@ -1588,11 +1649,11 @@ api 🧪 test:
|
|
|
1588
1649
|
- |-
|
|
1589
1650
|
current_job_name="pan-test-app-prod-api-send-reminders"
|
|
1590
1651
|
if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then
|
|
1591
|
-
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
1652
|
+
gcloud run jobs update "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1592
1653
|
else
|
|
1593
|
-
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=
|
|
1654
|
+
gcloud run jobs create "$current_job_name" --command="yarn,job:send-reminders" --args="--verbose=false" --labels="customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-job-name=$current_job_name" --image="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG" --project=google-project-id --region=europe-west6 --memory=512Mi --parallelism=1 --task-timeout=10m --env-vars-file=____envvars.yaml --max-retries=0 --set-cloudsql-instances=projectId:region:instancename
|
|
1594
1655
|
fi
|
|
1595
|
-
- gcloud run jobs execute pan-test-app-prod-api-
|
|
1656
|
+
- gcloud run jobs execute pan-test-app-prod-api-migrate --project=google-project-id --region=europe-west6 --wait --args="--verbose=true","--create-db"
|
|
1596
1657
|
- gcloud run deploy pan-test-app-prod-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --set-cloudsql-instances=projectId:region:instancename --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-service-name=pan-test-app-prod-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=5 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
1597
1658
|
- collapseable_section_end "deploy"
|
|
1598
1659
|
- collapseable_section_start "cleanup" "Cleanup"
|
|
@@ -1638,9 +1699,11 @@ api 🧪 test:
|
|
|
1638
1699
|
- set +e
|
|
1639
1700
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1640
1701
|
- gcloud run services delete pan-test-app-prod-api --project=google-project-id --region=europe-west6
|
|
1641
|
-
- gcloud scheduler jobs delete pan-test-app-prod-api-send-reminders-
|
|
1642
|
-
- gcloud
|
|
1643
|
-
- gcloud
|
|
1702
|
+
- gcloud scheduler jobs delete pan-test-app-prod-api-send-reminders-admins --project=google-project-id --location=europe-west6
|
|
1703
|
+
- gcloud scheduler jobs delete pan-test-app-prod-api-send-reminders --project=google-project-id --location=europe-west6
|
|
1704
|
+
- gcloud scheduler jobs delete pan-test-app-prod-api-call-http-endpoint --project=google-project-id --location=europe-west6
|
|
1705
|
+
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-prod-api-migrate --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
1706
|
+
- gcloud run jobs delete pan-test-app-prod-api-migrate --project=google-project-id --region=europe-west6
|
|
1644
1707
|
- gcloud run jobs executions list --project=google-project-id --region=europe-west6 --job pan-test-app-prod-api-send-reminders --format="value(name)" | xargs -I {} gcloud run jobs executions delete {} --quiet --project=google-project-id --region=europe-west6
|
|
1645
1708
|
- gcloud run jobs delete pan-test-app-prod-api-send-reminders --project=google-project-id --region=europe-west6
|
|
1646
1709
|
- gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api --quiet --delete-tags
|