diff --git a/.gitignore b/.gitignore index 3e3d850ca7100199bb3f35f92b827f8958d67fda..669afbcd9fdb68a05a12fa1b4487829ae3f7f95f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .envrc.local coverage terraform*.log +/.gitlab-ci-local diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f5d0ff715004ae78700254b199f0480f2ab86124..7dd7c1c273317434211df0407870c0dbdba71d2f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -49,7 +49,7 @@ variables: ## common steps cache_lint_test: - image: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:2.1.10' + image: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:2.2.2' stage: 'test' script: - deno cache --allow-import --lock=deno.lock app/deps.ts app/dev_deps.ts diff --git a/Dockerfile b/Dockerfile index 088a6a437530c11ffef1bfa508e6258b7d0f2c71..0732b7288f5af84fda202f19111e60887975e8b4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:2.1.10 +FROM europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:2.2.2 # The port that your application listens to. EXPOSE 8005 diff --git a/terraform/common/init.tf b/terraform/common/init.tf index d05853b22a327c9d33188aabff52d9b75e686693..9c8a300b1841ef756e352e69a44b2910c94235fc 100644 --- a/terraform/common/init.tf +++ b/terraform/common/init.tf @@ -1,4 +1,16 @@ terraform { + # allow the lowest common version across all projects, so that the current CI docker image version suits all projects + required_version = ">= 1.9" + required_providers { + google = { + source = "hashicorp/google" + version = "6.22.0" + } + google-beta = { + source = "hashicorp/google-beta" + version = "6.22.0" + } + } backend "gcs" { bucket = "holi-shared-terraform-state" prefix = "notifications-api-common" diff --git a/terraform/environments/init.tf b/terraform/environments/init.tf index 93cb73e17a641b6c1cc083b1738175be07ce81a8..a90411d595f1ef4689bf2fc9670bb003ad6c4a29 100644 --- a/terraform/environments/init.tf +++ b/terraform/environments/init.tf @@ -1,4 +1,16 @@ terraform { + # allow the lowest common version across all projects, so that the current CI docker image version suits all projects + required_version = ">= 1.9" + required_providers { + google = { + source = "hashicorp/google" + version = "6.22.0" + } + google-beta = { + source = "hashicorp/google-beta" + version = "6.22.0" + } + } backend "gcs" { bucket = "holi-shared-terraform-state" prefix = "notifications-api-environments" diff --git a/terraform/environments/scripts/wait-for-ssl.sh b/terraform/environments/scripts/wait-for-ssl.sh index e130aadf5d8efde49192249d4b826ffd64a61ef6..2a53fa605f62bcdb379948e214c8718565f6cc51 100755 --- a/terraform/environments/scripts/wait-for-ssl.sh +++ b/terraform/environments/scripts/wait-for-ssl.sh @@ -7,7 +7,7 @@ url="$1" # google has a cdn answering on requests. This cdn takes a while to be fully updated. # Therefore, we don't return on first success, but on a number of consecutive successes. -number_of_consecutive_successful_tries_needed=10 +number_of_consecutive_successful_tries_needed=25 number_of_consecutive_successful_tries_achieved=0 [ -z "$url" ] && echo "missing url as first param" && exit 1 @@ -17,10 +17,21 @@ echo -n "Checking if SSL certificate for $url is installed: " # storage for the return value of the curl command retval=0 +# early break on success (no need to wait on existing deployments) +set +e +curl -sSLIm 10 "$url" > /dev/null 2>& 1 +retval=$? +set -e +if [ $retval -eq 0 ]; then + echo "success on first try, not checking further" + exit 0 +fi + + # shellcheck disable=SC2034 for i in {1..2500}; do set +e - out=$(curl -sSLI "$url" 2>&1) + out=$(curl -sSLIm 10 "$url" 2>& 1) retval=$? set -e # shellcheck disable=SC2181 @@ -31,6 +42,7 @@ for i in {1..2500}; do echo "test successful after $i total tries" exit 0 fi + sleep 1 else echo -n "." number_of_consecutive_successful_tries_achieved=0