diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e8f206310c5219e18aaead92ca98833d6a42f1d9..786ffee7a965d243b344d56f1278a8c21398d05e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ variables: .deploy: image: - name: 'hashicorp/terraform:1.6.1' + name: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/hashicorp/terraform:1.6.1' # default entrypoint is terraform command, but we want to run shell scripts entrypoint: ["/bin/sh", "-c"] variables: @@ -27,14 +27,13 @@ variables: #when: on_failure expire_in: 1 week script: - - export GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_CLOUD_SERVICE_ACCOUNT} - terraform/environments/scripts/create-or-update-env.sh $ENVIRONMENT_ID $CI_COMMIT_SHA - echo "$(terraform/environments/scripts/get-output.sh api_domain)" > $API_DOMAIN_PATH resource_group: $ENVIRONMENT_ID # never execute terraform in parallel on the same environment interruptible: false .e2e: - image: 'archlinux:latest' + image: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/archlinux:latest' script: - API_DOMAIN=`cat $API_DOMAIN_PATH` - echo "e2e tests against $CI_ENVIRONMENT_SLUG environment go here and against $API_DOMAIN" @@ -47,7 +46,7 @@ variables: ## common steps cache_lint_test: - image: 'denoland/deno:alpine-1.40.1' + image: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:alpine-1.40.1' stage: 'test' script: - deno cache --lock=deno.lock app/deps.ts app/dev_deps.ts @@ -70,14 +69,12 @@ include: build_docker: needs: ['cache_lint_test'] - image: docker:20.10 + image: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/docker:20.10' services: - docker:20.10-dind variables: # this could be fetched via terraform output ("gcr_location" in infra project), but then we would need an extra job for terraform GCR_IMAGE: europe-north1-docker.pkg.dev/holi-shared/docker/holi-donations-api - before_script: - - cat $GOOGLE_CLOUD_SERVICE_ACCOUNT | docker login -u _json_key --password-stdin https://europe-north1-docker.pkg.dev script: - docker pull $GCR_IMAGE || true # Allows us to use --cache-from, we need to tag with latest in the next command for this to work - docker build --cache-from $GCR_IMAGE -t $GCR_IMAGE:latest -t $GCR_IMAGE:$CI_COMMIT_SHA -t $GCR_IMAGE:$CI_COMMIT_REF_SLUG . @@ -110,7 +107,7 @@ review_e2e: review_destroy: needs: ['review_deploy'] image: - name: 'hashicorp/terraform:1.6.1' + name: 'europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/hashicorp/terraform:1.6.1' # default entrypoint is terraform command, but we want to run shell scripts entrypoint: ["/bin/sh", "-c"] variables: @@ -122,7 +119,6 @@ review_destroy: action: stop dependencies: [] # explicitly disable artifact usage script: - - export GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_CLOUD_SERVICE_ACCOUNT} # branch may have been deleted, so we clone and checkout main - git clone $CI_REPOSITORY_URL main-clone - cd main-clone diff --git a/Dockerfile b/Dockerfile index 2723f8b15896a0f91be74db8072e8e943703f8a9..5129e4d336b6d1e0f76c6d48384ded87a73f7aa7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:alpine-1.40.1 +FROM europe-north1-docker.pkg.dev/holi-shared/docker-hub-remote/denoland/deno:alpine-1.40.1 # The port that your application listens to. EXPOSE 8001 diff --git a/app/betterplace.ts b/app/betterplace.ts index c76686e6451e6055faa92d1f2ae2b08f5986ad6b..a3ce666c747a5432a1c45b1d83e3bd6c608ad1a7 100644 --- a/app/betterplace.ts +++ b/app/betterplace.ts @@ -29,6 +29,7 @@ export const SUPPORTED_LANGUAGES = ["en", "de"]; export const DEFAULT_LANGUAGE: BetterPlaceLanguage = "en"; const DEFAULT_PAGE_SIZE = 10; const MAX_PAGE_FOR_RANDOMIZATION = 10; +const ERROR_CODE_NOT_FOUND = "NOT_FOUND"; const cleanUpHtml = (html: string): string => { let result = ""; @@ -293,15 +294,17 @@ export const fetchProject = async ( const response = await fetch(url); if (response.status === 404) { throw new GraphQLError("Not found", { - extensions: { "code": "NOT_FOUND" }, + extensions: { "code": ERROR_CODE_NOT_FOUND }, }); } const json = await response.json(); return transformProject(json); } catch (e) { - logger.error( - `Error performing request to ${url}: ${e.message}`, - ); + if (e.extensions?.code !== ERROR_CODE_NOT_FOUND) { + logger.error( + `Error performing request to ${url}: ${e.message}`, + ); + } throw e; } finally { const duration = Date.now() - start;