@catladder/pipeline 0.0.0-next-e2e4f00a → 0.0.0-next-c0c5f6da

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.
Files changed (107) hide show
  1. package/dist/build/base/createAppBuildJob.js +3 -3
  2. package/dist/build/custom/testJob.js +12 -12
  3. package/dist/build/node/buildJob.js +1 -1
  4. package/dist/build/node/cache.d.ts +2 -4
  5. package/dist/build/node/cache.js +3 -24
  6. package/dist/build/node/testJob.js +11 -11
  7. package/dist/build/rails/build.js +1 -1
  8. package/dist/build/rails/test.js +8 -8
  9. package/dist/build/types.d.ts +0 -10
  10. package/dist/bundles/catladder-gitlab/index.js +74 -174
  11. package/dist/constants.js +1 -1
  12. package/dist/context/__tests__/resolveReferences.test.js +0 -22
  13. package/dist/context/createComponentContext.js +0 -1
  14. package/dist/context/getEnvironment.js +1 -2
  15. package/dist/context/getEnvironmentVariables.d.ts +2 -5
  16. package/dist/context/getEnvironmentVariables.js +17 -24
  17. package/dist/context/resolveReferences.d.ts +1 -4
  18. package/dist/context/resolveReferences.js +2 -16
  19. package/dist/deploy/base/deploy.js +3 -3
  20. package/dist/deploy/cloudRun/index.js +2 -2
  21. package/dist/deploy/kubernetes/cloudSql/index.js +3 -14
  22. package/dist/deploy/kubernetes/deployJob.js +1 -3
  23. package/dist/deploy/kubernetes/index.js +2 -2
  24. package/dist/deploy/kubernetes/kubeValues.d.ts +1 -2
  25. package/dist/deploy/kubernetes/kubeValues.js +2 -3
  26. package/dist/deploy/types/base.d.ts +0 -6
  27. package/dist/deploy/types/kubernetes.d.ts +1 -34
  28. package/dist/pipeline/gitlab/createGitlabJobs.js +3 -5
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/config.d.ts +0 -8
  31. package/dist/types/context.d.ts +0 -8
  32. package/dist/types/jobs.d.ts +0 -8
  33. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +36 -68
  34. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +36 -52
  35. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1402 -0
  36. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +36 -68
  37. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +36 -68
  38. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +36 -68
  39. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +36 -68
  40. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +36 -68
  41. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +36 -68
  42. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +36 -68
  43. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +36 -68
  44. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +36 -68
  45. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +36 -68
  46. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +72 -136
  47. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +48 -84
  48. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +36 -68
  49. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +36 -52
  50. package/examples/__snapshots__/custom-build-job.test.ts.snap +36 -52
  51. package/examples/__snapshots__/custom-deploy.test.ts.snap +24 -48
  52. package/examples/__snapshots__/custom-envs.test.ts.snap +18 -48
  53. package/examples/__snapshots__/custom-sbom-java.test.ts.snap +36 -52
  54. package/examples/__snapshots__/git-submodule.test.ts.snap +36 -68
  55. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +60 -112
  56. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +60 -112
  57. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +120 -224
  58. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +60 -112
  59. package/examples/__snapshots__/local-dot-env.test.ts.snap +36 -68
  60. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +60 -96
  61. package/examples/__snapshots__/multiline-var.test.ts.snap +96 -180
  62. package/examples/__snapshots__/native-app.test.ts.snap +72 -132
  63. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +36 -68
  64. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +36 -68
  65. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +48 -80
  66. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +48 -80
  67. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +48 -96
  68. package/examples/__snapshots__/{workspace-api-www-custom-cache.test.ts.snap → workspace-api-www-turbo-cache.test.ts.snap} +81 -153
  69. package/examples/__snapshots__/workspace-api-www.test.ts.snap +76 -136
  70. package/examples/{workspace-api-www-custom-cache.test.ts → cloud-run-nextjs.test.ts} +2 -2
  71. package/examples/cloud-run-nextjs.ts +29 -0
  72. package/examples/native-app.ts +10 -6
  73. package/examples/rails-k8s-with-worker.ts +5 -1
  74. package/examples/{kubernetes-with-cloud-sql-legacy.test.ts → workspace-api-www-turbo-cache.test.ts} +2 -2
  75. package/examples/{workspace-api-www-custom-cache.ts → workspace-api-www-turbo-cache.ts} +4 -1
  76. package/examples/workspace-api-www.ts +3 -0
  77. package/package.json +1 -1
  78. package/src/build/base/createAppBuildJob.ts +0 -1
  79. package/src/build/custom/testJob.ts +0 -1
  80. package/src/build/node/buildJob.ts +2 -2
  81. package/src/build/node/cache.ts +0 -29
  82. package/src/build/node/testJob.ts +0 -1
  83. package/src/build/rails/build.ts +0 -1
  84. package/src/build/rails/test.ts +0 -1
  85. package/src/build/types.ts +0 -13
  86. package/src/context/__tests__/resolveReferences.test.ts +1 -27
  87. package/src/context/createComponentContext.ts +0 -1
  88. package/src/context/getEnvironment.ts +1 -1
  89. package/src/context/getEnvironmentVariables.ts +13 -34
  90. package/src/context/resolveReferences.ts +0 -13
  91. package/src/deploy/base/deploy.ts +1 -1
  92. package/src/deploy/cloudRun/index.ts +2 -2
  93. package/src/deploy/kubernetes/cloudSql/index.ts +1 -15
  94. package/src/deploy/kubernetes/deployJob.ts +0 -2
  95. package/src/deploy/kubernetes/index.ts +2 -2
  96. package/src/deploy/kubernetes/kubeValues.ts +5 -8
  97. package/src/deploy/types/base.ts +0 -6
  98. package/src/deploy/types/kubernetes.ts +1 -36
  99. package/src/pipeline/gitlab/createGitlabJobs.ts +1 -4
  100. package/src/types/config.ts +0 -8
  101. package/src/types/context.ts +1 -8
  102. package/src/types/jobs.ts +0 -8
  103. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -85
  104. package/dist/deploy/kubernetes/processSecretsAsFiles.js +0 -33
  105. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +0 -1791
  106. package/examples/kubernetes-with-cloud-sql-legacy.ts +0 -35
  107. package/src/deploy/kubernetes/processSecretsAsFiles.ts +0 -35
@@ -168,17 +168,16 @@ api 🧪 test:
168
168
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
169
169
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
170
170
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
171
- - export HOST="api.dev.test-app.pan.panter.cloud"
171
+ - export HOSTNAME="api.dev.test-app.pan.panter.cloud"
172
172
  - export ROOT_URL="https://api.dev.test-app.pan.panter.cloud"
173
- - export HOST_INTERNAL="api.dev.test-app.pan.panter.cloud"
174
- - export HOST_CANONICAL="api.dev.test-app.pan.panter.cloud"
173
+ - export HOSTNAME_INTERNAL="api.dev.test-app.pan.panter.cloud"
175
174
  - export ROOT_URL_INTERNAL="https://api.dev.test-app.pan.panter.cloud"
176
175
  - export KUBE_NAMESPACE="pan-test-app-dev"
177
176
  - export KUBE_APP_NAME="api"
178
177
  - export KUBE_APP_NAME_PREFIX=""
179
178
  - export POSTGRESQL_PASSWORD="$CL_dev_api_POSTGRESQL_PASSWORD"
180
179
  - export cloudsqlProxyCredentials="$CL_dev_api_cloudsqlProxyCredentials"
181
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
180
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
182
181
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
183
182
  - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
184
183
  - echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"
@@ -203,10 +202,6 @@ api 🧪 test:
203
202
  policy: pull-push
204
203
  paths:
205
204
  - api/node_modules
206
- - key: api-next-cache
207
- policy: pull-push
208
- paths:
209
- - api/.next/cache
210
205
  artifacts:
211
206
  paths:
212
207
  - api/__build_info.json
@@ -315,17 +310,16 @@ api 🧪 test:
315
310
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
316
311
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
317
312
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
318
- - export HOST="api.dev.test-app.pan.panter.cloud"
313
+ - export HOSTNAME="api.dev.test-app.pan.panter.cloud"
319
314
  - export ROOT_URL="https://api.dev.test-app.pan.panter.cloud"
320
- - export HOST_INTERNAL="api.dev.test-app.pan.panter.cloud"
321
- - export HOST_CANONICAL="api.dev.test-app.pan.panter.cloud"
315
+ - export HOSTNAME_INTERNAL="api.dev.test-app.pan.panter.cloud"
322
316
  - export ROOT_URL_INTERNAL="https://api.dev.test-app.pan.panter.cloud"
323
317
  - export KUBE_NAMESPACE="pan-test-app-dev"
324
318
  - export KUBE_APP_NAME="api"
325
319
  - export KUBE_APP_NAME_PREFIX=""
326
320
  - export POSTGRESQL_PASSWORD="$CL_dev_api_POSTGRESQL_PASSWORD"
327
321
  - export cloudsqlProxyCredentials="$CL_dev_api_cloudsqlProxyCredentials"
328
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
322
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
329
323
  - export DOCKER_REGISTRY="$CI_REGISTRY"
330
324
  - export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/api"
331
325
  - export DOCKER_IMAGE_NAME="dev/api"
@@ -337,7 +331,6 @@ api 🧪 test:
337
331
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
338
332
  - export HELM_ARGS=""
339
333
  - export COMPONENT_NAME="api"
340
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
341
334
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
342
335
  - kubectl config set-cluster "kube-pan-test-app-dev-api" --server="$CL_dev_api_KUBE_URL" --certificate-authority <(echo $CL_dev_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
343
336
  - kubectl config set-credentials "kube-pan-test-app-dev-api" --token="$CL_dev_api_KUBE_TOKEN"
@@ -365,13 +358,11 @@ api 🧪 test:
365
358
  $(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
366
359
  BUILD_INFO_CURRENT_VERSION: |-
367
360
  $(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed 's/^/ /')
368
- HOST: |-
361
+ HOSTNAME: |-
369
362
  api.dev.test-app.pan.panter.cloud
370
363
  ROOT_URL: |-
371
364
  https://api.dev.test-app.pan.panter.cloud
372
- HOST_INTERNAL: |-
373
- api.dev.test-app.pan.panter.cloud
374
- HOST_CANONICAL: |-
365
+ HOSTNAME_INTERNAL: |-
375
366
  api.dev.test-app.pan.panter.cloud
376
367
  ROOT_URL_INTERNAL: |-
377
368
  https://api.dev.test-app.pan.panter.cloud
@@ -381,7 +372,7 @@ api 🧪 test:
381
372
  api
382
373
  KUBE_APP_NAME_PREFIX: ""
383
374
  _ALL_ENV_VAR_KEYS: |-
384
- ["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
375
+ ["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","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
385
376
  application:
386
377
  host: |-
387
378
  api.dev.test-app.pan.panter.cloud
@@ -465,24 +456,22 @@ api 🧪 test:
465
456
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
466
457
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
467
458
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
468
- - export HOST="api.dev.test-app.pan.panter.cloud"
459
+ - export HOSTNAME="api.dev.test-app.pan.panter.cloud"
469
460
  - export ROOT_URL="https://api.dev.test-app.pan.panter.cloud"
470
- - export HOST_INTERNAL="api.dev.test-app.pan.panter.cloud"
471
- - export HOST_CANONICAL="api.dev.test-app.pan.panter.cloud"
461
+ - export HOSTNAME_INTERNAL="api.dev.test-app.pan.panter.cloud"
472
462
  - export ROOT_URL_INTERNAL="https://api.dev.test-app.pan.panter.cloud"
473
463
  - export KUBE_NAMESPACE="pan-test-app-dev"
474
464
  - export KUBE_APP_NAME="api"
475
465
  - export KUBE_APP_NAME_PREFIX=""
476
466
  - export POSTGRESQL_PASSWORD="$CL_dev_api_POSTGRESQL_PASSWORD"
477
467
  - export cloudsqlProxyCredentials="$CL_dev_api_cloudsqlProxyCredentials"
478
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
468
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
479
469
  - export RELEASE_NAME="pan-test-app-dev-api"
480
470
  - export HELM_EXPERIMENTAL_OCI="1"
481
471
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
482
472
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
483
473
  - export HELM_ARGS=""
484
474
  - export COMPONENT_NAME="api"
485
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
486
475
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
487
476
  - kubectl config set-cluster "kube-pan-test-app-dev-api" --server="$CL_dev_api_KUBE_URL" --certificate-authority <(echo $CL_dev_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
488
477
  - kubectl config set-credentials "kube-pan-test-app-dev-api" --token="$CL_dev_api_KUBE_TOKEN"
@@ -526,24 +515,22 @@ api 🧪 test:
526
515
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
527
516
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
528
517
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
529
- - export HOST="api.dev.test-app.pan.panter.cloud"
518
+ - export HOSTNAME="api.dev.test-app.pan.panter.cloud"
530
519
  - export ROOT_URL="https://api.dev.test-app.pan.panter.cloud"
531
- - export HOST_INTERNAL="api.dev.test-app.pan.panter.cloud"
532
- - export HOST_CANONICAL="api.dev.test-app.pan.panter.cloud"
520
+ - export HOSTNAME_INTERNAL="api.dev.test-app.pan.panter.cloud"
533
521
  - export ROOT_URL_INTERNAL="https://api.dev.test-app.pan.panter.cloud"
534
522
  - export KUBE_NAMESPACE="pan-test-app-dev"
535
523
  - export KUBE_APP_NAME="api"
536
524
  - export KUBE_APP_NAME_PREFIX=""
537
525
  - export POSTGRESQL_PASSWORD="$CL_dev_api_POSTGRESQL_PASSWORD"
538
526
  - export cloudsqlProxyCredentials="$CL_dev_api_cloudsqlProxyCredentials"
539
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
527
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
540
528
  - export RELEASE_NAME="pan-test-app-dev-api"
541
529
  - export HELM_EXPERIMENTAL_OCI="1"
542
530
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
543
531
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
544
532
  - export HELM_ARGS=""
545
533
  - export COMPONENT_NAME="api"
546
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
547
534
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
548
535
  - kubectl config set-cluster "kube-pan-test-app-dev-api" --server="$CL_dev_api_KUBE_URL" --certificate-authority <(echo $CL_dev_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
549
536
  - kubectl config set-credentials "kube-pan-test-app-dev-api" --token="$CL_dev_api_KUBE_TOKEN"
@@ -582,17 +569,16 @@ api 🧪 test:
582
569
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
583
570
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
584
571
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
585
- - export HOST="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
572
+ - export HOSTNAME="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
586
573
  - export ROOT_URL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
587
- - export HOST_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
588
- - export HOST_CANONICAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
574
+ - export HOSTNAME_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
589
575
  - export ROOT_URL_INTERNAL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
590
576
  - export KUBE_NAMESPACE="pan-test-app-review"
591
577
  - export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api"
592
578
  - export KUBE_APP_NAME_PREFIX="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-"
593
579
  - export POSTGRESQL_PASSWORD="$CL_review_api_POSTGRESQL_PASSWORD"
594
580
  - export cloudsqlProxyCredentials="$CL_review_api_cloudsqlProxyCredentials"
595
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
581
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
596
582
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
597
583
  - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
598
584
  - echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"
@@ -617,10 +603,6 @@ api 🧪 test:
617
603
  policy: pull-push
618
604
  paths:
619
605
  - api/node_modules
620
- - key: api-next-cache
621
- policy: pull-push
622
- paths:
623
- - api/.next/cache
624
606
  artifacts:
625
607
  paths:
626
608
  - api/__build_info.json
@@ -723,17 +705,16 @@ api 🧪 test:
723
705
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
724
706
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
725
707
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
726
- - export HOST="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
708
+ - export HOSTNAME="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
727
709
  - export ROOT_URL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
728
- - export HOST_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
729
- - export HOST_CANONICAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
710
+ - export HOSTNAME_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
730
711
  - export ROOT_URL_INTERNAL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
731
712
  - export KUBE_NAMESPACE="pan-test-app-review"
732
713
  - export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api"
733
714
  - export KUBE_APP_NAME_PREFIX="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-"
734
715
  - export POSTGRESQL_PASSWORD="$CL_review_api_POSTGRESQL_PASSWORD"
735
716
  - export cloudsqlProxyCredentials="$CL_review_api_cloudsqlProxyCredentials"
736
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
717
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
737
718
  - export DOCKER_REGISTRY="$CI_REGISTRY"
738
719
  - export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/api"
739
720
  - export DOCKER_IMAGE_NAME="review/api"
@@ -745,7 +726,6 @@ api 🧪 test:
745
726
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
746
727
  - export HELM_ARGS=""
747
728
  - export COMPONENT_NAME="api"
748
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
749
729
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
750
730
  - kubectl config set-cluster "kube-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" --server="$CL_review_api_KUBE_URL" --certificate-authority <(echo $CL_review_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
751
731
  - kubectl config set-credentials "kube-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" --token="$CL_review_api_KUBE_TOKEN"
@@ -773,13 +753,11 @@ api 🧪 test:
773
753
  $(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
774
754
  BUILD_INFO_CURRENT_VERSION: |-
775
755
  $(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed 's/^/ /')
776
- HOST: |-
756
+ HOSTNAME: |-
777
757
  $(printf %s "api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
778
758
  ROOT_URL: |-
779
759
  $(printf %s "https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
780
- HOST_INTERNAL: |-
781
- $(printf %s "api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
782
- HOST_CANONICAL: |-
760
+ HOSTNAME_INTERNAL: |-
783
761
  $(printf %s "api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
784
762
  ROOT_URL_INTERNAL: |-
785
763
  $(printf %s "https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
@@ -790,7 +768,7 @@ api 🧪 test:
790
768
  KUBE_APP_NAME_PREFIX: |-
791
769
  $(printf %s "$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-" | sed 's/^/ /')
792
770
  _ALL_ENV_VAR_KEYS: |-
793
- ["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
771
+ ["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","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
794
772
  application:
795
773
  host: |-
796
774
  $(printf %s "api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud" | sed 's/^/ /')
@@ -872,24 +850,22 @@ api 🧪 test:
872
850
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
873
851
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
874
852
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
875
- - export HOST="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
853
+ - export HOSTNAME="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
876
854
  - export ROOT_URL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
877
- - export HOST_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
878
- - export HOST_CANONICAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
855
+ - export HOSTNAME_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
879
856
  - export ROOT_URL_INTERNAL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
880
857
  - export KUBE_NAMESPACE="pan-test-app-review"
881
858
  - export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api"
882
859
  - export KUBE_APP_NAME_PREFIX="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-"
883
860
  - export POSTGRESQL_PASSWORD="$CL_review_api_POSTGRESQL_PASSWORD"
884
861
  - export cloudsqlProxyCredentials="$CL_review_api_cloudsqlProxyCredentials"
885
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
862
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
886
863
  - export RELEASE_NAME="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"
887
864
  - export HELM_EXPERIMENTAL_OCI="1"
888
865
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
889
866
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
890
867
  - export HELM_ARGS=""
891
868
  - export COMPONENT_NAME="api"
892
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
893
869
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
894
870
  - kubectl config set-cluster "kube-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" --server="$CL_review_api_KUBE_URL" --certificate-authority <(echo $CL_review_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
895
871
  - kubectl config set-credentials "kube-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" --token="$CL_review_api_KUBE_TOKEN"
@@ -931,24 +907,22 @@ api 🧪 test:
931
907
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
932
908
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
933
909
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
934
- - export HOST="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
910
+ - export HOSTNAME="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
935
911
  - export ROOT_URL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
936
- - export HOST_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
937
- - export HOST_CANONICAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
912
+ - export HOSTNAME_INTERNAL="api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
938
913
  - export ROOT_URL_INTERNAL="https://api.$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }).review.test-app.pan.panter.cloud"
939
914
  - export KUBE_NAMESPACE="pan-test-app-review"
940
915
  - export KUBE_APP_NAME="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-api"
941
916
  - export KUBE_APP_NAME_PREFIX="$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-"
942
917
  - export POSTGRESQL_PASSWORD="$CL_review_api_POSTGRESQL_PASSWORD"
943
918
  - export cloudsqlProxyCredentials="$CL_review_api_cloudsqlProxyCredentials"
944
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
919
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
945
920
  - export RELEASE_NAME="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"
946
921
  - export HELM_EXPERIMENTAL_OCI="1"
947
922
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
948
923
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
949
924
  - export HELM_ARGS=""
950
925
  - export COMPONENT_NAME="api"
951
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
952
926
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
953
927
  - kubectl config set-cluster "kube-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" --server="$CL_review_api_KUBE_URL" --certificate-authority <(echo $CL_review_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
954
928
  - kubectl config set-credentials "kube-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" --token="$CL_review_api_KUBE_TOKEN"
@@ -985,17 +959,16 @@ api 🧪 test:
985
959
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
986
960
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
987
961
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
988
- - export HOST="api.stage.test-app.pan.panter.cloud"
962
+ - export HOSTNAME="api.stage.test-app.pan.panter.cloud"
989
963
  - export ROOT_URL="https://api.stage.test-app.pan.panter.cloud"
990
- - export HOST_INTERNAL="api.stage.test-app.pan.panter.cloud"
991
- - export HOST_CANONICAL="api.stage.test-app.pan.panter.cloud"
964
+ - export HOSTNAME_INTERNAL="api.stage.test-app.pan.panter.cloud"
992
965
  - export ROOT_URL_INTERNAL="https://api.stage.test-app.pan.panter.cloud"
993
966
  - export KUBE_NAMESPACE="pan-test-app-stage"
994
967
  - export KUBE_APP_NAME="api"
995
968
  - export KUBE_APP_NAME_PREFIX=""
996
969
  - export POSTGRESQL_PASSWORD="$CL_stage_api_POSTGRESQL_PASSWORD"
997
970
  - export cloudsqlProxyCredentials="$CL_stage_api_cloudsqlProxyCredentials"
998
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
971
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
999
972
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1000
973
  - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
1001
974
  - echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"
@@ -1020,10 +993,6 @@ api 🧪 test:
1020
993
  policy: pull-push
1021
994
  paths:
1022
995
  - api/node_modules
1023
- - key: api-next-cache
1024
- policy: pull-push
1025
- paths:
1026
- - api/.next/cache
1027
996
  artifacts:
1028
997
  paths:
1029
998
  - api/__build_info.json
@@ -1126,17 +1095,16 @@ api 🧪 test:
1126
1095
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1127
1096
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1128
1097
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1129
- - export HOST="api.stage.test-app.pan.panter.cloud"
1098
+ - export HOSTNAME="api.stage.test-app.pan.panter.cloud"
1130
1099
  - export ROOT_URL="https://api.stage.test-app.pan.panter.cloud"
1131
- - export HOST_INTERNAL="api.stage.test-app.pan.panter.cloud"
1132
- - export HOST_CANONICAL="api.stage.test-app.pan.panter.cloud"
1100
+ - export HOSTNAME_INTERNAL="api.stage.test-app.pan.panter.cloud"
1133
1101
  - export ROOT_URL_INTERNAL="https://api.stage.test-app.pan.panter.cloud"
1134
1102
  - export KUBE_NAMESPACE="pan-test-app-stage"
1135
1103
  - export KUBE_APP_NAME="api"
1136
1104
  - export KUBE_APP_NAME_PREFIX=""
1137
1105
  - export POSTGRESQL_PASSWORD="$CL_stage_api_POSTGRESQL_PASSWORD"
1138
1106
  - export cloudsqlProxyCredentials="$CL_stage_api_cloudsqlProxyCredentials"
1139
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1107
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1140
1108
  - export DOCKER_REGISTRY="$CI_REGISTRY"
1141
1109
  - export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/api"
1142
1110
  - export DOCKER_IMAGE_NAME="stage/api"
@@ -1148,7 +1116,6 @@ api 🧪 test:
1148
1116
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1149
1117
  - export HELM_ARGS=""
1150
1118
  - export COMPONENT_NAME="api"
1151
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1152
1119
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1153
1120
  - kubectl config set-cluster "kube-pan-test-app-stage-api" --server="$CL_stage_api_KUBE_URL" --certificate-authority <(echo $CL_stage_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1154
1121
  - kubectl config set-credentials "kube-pan-test-app-stage-api" --token="$CL_stage_api_KUBE_TOKEN"
@@ -1176,13 +1143,11 @@ api 🧪 test:
1176
1143
  $(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
1177
1144
  BUILD_INFO_CURRENT_VERSION: |-
1178
1145
  $(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed 's/^/ /')
1179
- HOST: |-
1146
+ HOSTNAME: |-
1180
1147
  api.stage.test-app.pan.panter.cloud
1181
1148
  ROOT_URL: |-
1182
1149
  https://api.stage.test-app.pan.panter.cloud
1183
- HOST_INTERNAL: |-
1184
- api.stage.test-app.pan.panter.cloud
1185
- HOST_CANONICAL: |-
1150
+ HOSTNAME_INTERNAL: |-
1186
1151
  api.stage.test-app.pan.panter.cloud
1187
1152
  ROOT_URL_INTERNAL: |-
1188
1153
  https://api.stage.test-app.pan.panter.cloud
@@ -1192,7 +1157,7 @@ api 🧪 test:
1192
1157
  api
1193
1158
  KUBE_APP_NAME_PREFIX: ""
1194
1159
  _ALL_ENV_VAR_KEYS: |-
1195
- ["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
1160
+ ["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","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
1196
1161
  application:
1197
1162
  host: |-
1198
1163
  api.stage.test-app.pan.panter.cloud
@@ -1267,24 +1232,22 @@ api 🧪 test:
1267
1232
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1268
1233
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1269
1234
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1270
- - export HOST="api.stage.test-app.pan.panter.cloud"
1235
+ - export HOSTNAME="api.stage.test-app.pan.panter.cloud"
1271
1236
  - export ROOT_URL="https://api.stage.test-app.pan.panter.cloud"
1272
- - export HOST_INTERNAL="api.stage.test-app.pan.panter.cloud"
1273
- - export HOST_CANONICAL="api.stage.test-app.pan.panter.cloud"
1237
+ - export HOSTNAME_INTERNAL="api.stage.test-app.pan.panter.cloud"
1274
1238
  - export ROOT_URL_INTERNAL="https://api.stage.test-app.pan.panter.cloud"
1275
1239
  - export KUBE_NAMESPACE="pan-test-app-stage"
1276
1240
  - export KUBE_APP_NAME="api"
1277
1241
  - export KUBE_APP_NAME_PREFIX=""
1278
1242
  - export POSTGRESQL_PASSWORD="$CL_stage_api_POSTGRESQL_PASSWORD"
1279
1243
  - export cloudsqlProxyCredentials="$CL_stage_api_cloudsqlProxyCredentials"
1280
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1244
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1281
1245
  - export RELEASE_NAME="pan-test-app-stage-api"
1282
1246
  - export HELM_EXPERIMENTAL_OCI="1"
1283
1247
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
1284
1248
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1285
1249
  - export HELM_ARGS=""
1286
1250
  - export COMPONENT_NAME="api"
1287
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1288
1251
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1289
1252
  - kubectl config set-cluster "kube-pan-test-app-stage-api" --server="$CL_stage_api_KUBE_URL" --certificate-authority <(echo $CL_stage_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1290
1253
  - kubectl config set-credentials "kube-pan-test-app-stage-api" --token="$CL_stage_api_KUBE_TOKEN"
@@ -1326,24 +1289,22 @@ api 🧪 test:
1326
1289
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1327
1290
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1328
1291
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1329
- - export HOST="api.stage.test-app.pan.panter.cloud"
1292
+ - export HOSTNAME="api.stage.test-app.pan.panter.cloud"
1330
1293
  - export ROOT_URL="https://api.stage.test-app.pan.panter.cloud"
1331
- - export HOST_INTERNAL="api.stage.test-app.pan.panter.cloud"
1332
- - export HOST_CANONICAL="api.stage.test-app.pan.panter.cloud"
1294
+ - export HOSTNAME_INTERNAL="api.stage.test-app.pan.panter.cloud"
1333
1295
  - export ROOT_URL_INTERNAL="https://api.stage.test-app.pan.panter.cloud"
1334
1296
  - export KUBE_NAMESPACE="pan-test-app-stage"
1335
1297
  - export KUBE_APP_NAME="api"
1336
1298
  - export KUBE_APP_NAME_PREFIX=""
1337
1299
  - export POSTGRESQL_PASSWORD="$CL_stage_api_POSTGRESQL_PASSWORD"
1338
1300
  - export cloudsqlProxyCredentials="$CL_stage_api_cloudsqlProxyCredentials"
1339
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1301
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1340
1302
  - export RELEASE_NAME="pan-test-app-stage-api"
1341
1303
  - export HELM_EXPERIMENTAL_OCI="1"
1342
1304
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
1343
1305
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1344
1306
  - export HELM_ARGS=""
1345
1307
  - export COMPONENT_NAME="api"
1346
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1347
1308
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1348
1309
  - kubectl config set-cluster "kube-pan-test-app-stage-api" --server="$CL_stage_api_KUBE_URL" --certificate-authority <(echo $CL_stage_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1349
1310
  - kubectl config set-credentials "kube-pan-test-app-stage-api" --token="$CL_stage_api_KUBE_TOKEN"
@@ -1380,17 +1341,16 @@ api 🧪 test:
1380
1341
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1381
1342
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1382
1343
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1383
- - export HOST="api.prod.test-app.pan.panter.cloud"
1344
+ - export HOSTNAME="api.prod.test-app.pan.panter.cloud"
1384
1345
  - export ROOT_URL="https://api.prod.test-app.pan.panter.cloud"
1385
- - export HOST_INTERNAL="api.prod.test-app.pan.panter.cloud"
1386
- - export HOST_CANONICAL="api.prod.test-app.pan.panter.cloud"
1346
+ - export HOSTNAME_INTERNAL="api.prod.test-app.pan.panter.cloud"
1387
1347
  - export ROOT_URL_INTERNAL="https://api.prod.test-app.pan.panter.cloud"
1388
1348
  - export KUBE_NAMESPACE="pan-test-app-prod"
1389
1349
  - export KUBE_APP_NAME="api"
1390
1350
  - export KUBE_APP_NAME_PREFIX=""
1391
1351
  - export POSTGRESQL_PASSWORD="$CL_prod_api_POSTGRESQL_PASSWORD"
1392
1352
  - export cloudsqlProxyCredentials="$CL_prod_api_cloudsqlProxyCredentials"
1393
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1353
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1394
1354
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1395
1355
  - echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > api/__build_info.json
1396
1356
  - echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"
@@ -1415,10 +1375,6 @@ api 🧪 test:
1415
1375
  policy: pull-push
1416
1376
  paths:
1417
1377
  - api/node_modules
1418
- - key: api-next-cache
1419
- policy: pull-push
1420
- paths:
1421
- - api/.next/cache
1422
1378
  artifacts:
1423
1379
  paths:
1424
1380
  - api/__build_info.json
@@ -1521,17 +1477,16 @@ api 🧪 test:
1521
1477
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1522
1478
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1523
1479
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1524
- - export HOST="api.prod.test-app.pan.panter.cloud"
1480
+ - export HOSTNAME="api.prod.test-app.pan.panter.cloud"
1525
1481
  - export ROOT_URL="https://api.prod.test-app.pan.panter.cloud"
1526
- - export HOST_INTERNAL="api.prod.test-app.pan.panter.cloud"
1527
- - export HOST_CANONICAL="api.prod.test-app.pan.panter.cloud"
1482
+ - export HOSTNAME_INTERNAL="api.prod.test-app.pan.panter.cloud"
1528
1483
  - export ROOT_URL_INTERNAL="https://api.prod.test-app.pan.panter.cloud"
1529
1484
  - export KUBE_NAMESPACE="pan-test-app-prod"
1530
1485
  - export KUBE_APP_NAME="api"
1531
1486
  - export KUBE_APP_NAME_PREFIX=""
1532
1487
  - export POSTGRESQL_PASSWORD="$CL_prod_api_POSTGRESQL_PASSWORD"
1533
1488
  - export cloudsqlProxyCredentials="$CL_prod_api_cloudsqlProxyCredentials"
1534
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1489
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1535
1490
  - export DOCKER_REGISTRY="$CI_REGISTRY"
1536
1491
  - export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/api"
1537
1492
  - export DOCKER_IMAGE_NAME="prod/api"
@@ -1543,7 +1498,6 @@ api 🧪 test:
1543
1498
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1544
1499
  - export HELM_ARGS=""
1545
1500
  - export COMPONENT_NAME="api"
1546
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1547
1501
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1548
1502
  - kubectl config set-cluster "kube-pan-test-app-prod-api" --server="$CL_prod_api_KUBE_URL" --certificate-authority <(echo $CL_prod_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1549
1503
  - kubectl config set-credentials "kube-pan-test-app-prod-api" --token="$CL_prod_api_KUBE_TOKEN"
@@ -1571,13 +1525,11 @@ api 🧪 test:
1571
1525
  $(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
1572
1526
  BUILD_INFO_CURRENT_VERSION: |-
1573
1527
  $(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed 's/^/ /')
1574
- HOST: |-
1528
+ HOSTNAME: |-
1575
1529
  api.prod.test-app.pan.panter.cloud
1576
1530
  ROOT_URL: |-
1577
1531
  https://api.prod.test-app.pan.panter.cloud
1578
- HOST_INTERNAL: |-
1579
- api.prod.test-app.pan.panter.cloud
1580
- HOST_CANONICAL: |-
1532
+ HOSTNAME_INTERNAL: |-
1581
1533
  api.prod.test-app.pan.panter.cloud
1582
1534
  ROOT_URL_INTERNAL: |-
1583
1535
  https://api.prod.test-app.pan.panter.cloud
@@ -1587,7 +1539,7 @@ api 🧪 test:
1587
1539
  api
1588
1540
  KUBE_APP_NAME_PREFIX: ""
1589
1541
  _ALL_ENV_VAR_KEYS: |-
1590
- ["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
1542
+ ["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","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","POSTGRESQL_PASSWORD","cloudsqlProxyCredentials"]
1591
1543
  application:
1592
1544
  host: |-
1593
1545
  api.prod.test-app.pan.panter.cloud
@@ -1662,24 +1614,22 @@ api 🧪 test:
1662
1614
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1663
1615
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1664
1616
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1665
- - export HOST="api.prod.test-app.pan.panter.cloud"
1617
+ - export HOSTNAME="api.prod.test-app.pan.panter.cloud"
1666
1618
  - export ROOT_URL="https://api.prod.test-app.pan.panter.cloud"
1667
- - export HOST_INTERNAL="api.prod.test-app.pan.panter.cloud"
1668
- - export HOST_CANONICAL="api.prod.test-app.pan.panter.cloud"
1619
+ - export HOSTNAME_INTERNAL="api.prod.test-app.pan.panter.cloud"
1669
1620
  - export ROOT_URL_INTERNAL="https://api.prod.test-app.pan.panter.cloud"
1670
1621
  - export KUBE_NAMESPACE="pan-test-app-prod"
1671
1622
  - export KUBE_APP_NAME="api"
1672
1623
  - export KUBE_APP_NAME_PREFIX=""
1673
1624
  - export POSTGRESQL_PASSWORD="$CL_prod_api_POSTGRESQL_PASSWORD"
1674
1625
  - export cloudsqlProxyCredentials="$CL_prod_api_cloudsqlProxyCredentials"
1675
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1626
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1676
1627
  - export RELEASE_NAME="pan-test-app-prod-api"
1677
1628
  - export HELM_EXPERIMENTAL_OCI="1"
1678
1629
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
1679
1630
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1680
1631
  - export HELM_ARGS=""
1681
1632
  - export COMPONENT_NAME="api"
1682
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1683
1633
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1684
1634
  - kubectl config set-cluster "kube-pan-test-app-prod-api" --server="$CL_prod_api_KUBE_URL" --certificate-authority <(echo $CL_prod_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1685
1635
  - kubectl config set-credentials "kube-pan-test-app-prod-api" --token="$CL_prod_api_KUBE_TOKEN"
@@ -1721,24 +1671,22 @@ api 🧪 test:
1721
1671
  - export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1722
1672
  - export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
1723
1673
  - export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
1724
- - export HOST="api.prod.test-app.pan.panter.cloud"
1674
+ - export HOSTNAME="api.prod.test-app.pan.panter.cloud"
1725
1675
  - export ROOT_URL="https://api.prod.test-app.pan.panter.cloud"
1726
- - export HOST_INTERNAL="api.prod.test-app.pan.panter.cloud"
1727
- - export HOST_CANONICAL="api.prod.test-app.pan.panter.cloud"
1676
+ - export HOSTNAME_INTERNAL="api.prod.test-app.pan.panter.cloud"
1728
1677
  - export ROOT_URL_INTERNAL="https://api.prod.test-app.pan.panter.cloud"
1729
1678
  - export KUBE_NAMESPACE="pan-test-app-prod"
1730
1679
  - export KUBE_APP_NAME="api"
1731
1680
  - export KUBE_APP_NAME_PREFIX=""
1732
1681
  - export POSTGRESQL_PASSWORD="$CL_prod_api_POSTGRESQL_PASSWORD"
1733
1682
  - export cloudsqlProxyCredentials="$CL_prod_api_cloudsqlProxyCredentials"
1734
- - export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1683
+ - 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\\",\\"KUBE_NAMESPACE\\",\\"KUBE_APP_NAME\\",\\"KUBE_APP_NAME_PREFIX\\",\\"POSTGRESQL_PASSWORD\\",\\"cloudsqlProxyCredentials\\"]"
1735
1684
  - export RELEASE_NAME="pan-test-app-prod-api"
1736
1685
  - export HELM_EXPERIMENTAL_OCI="1"
1737
1686
  - export KUBE_DOCKER_IMAGE_PULL_SECRET="gitlab-registry-api"
1738
1687
  - export HELM_GITLAB_CHART_NAME="/helm-charts/the-panter-chart"
1739
1688
  - export HELM_ARGS=""
1740
1689
  - export COMPONENT_NAME="api"
1741
- - export BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
1742
1690
  - echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
1743
1691
  - kubectl config set-cluster "kube-pan-test-app-prod-api" --server="$CL_prod_api_KUBE_URL" --certificate-authority <(echo $CL_prod_api_KUBE_CA_PEM | base64 -d) --embed-certs=true
1744
1692
  - kubectl config set-credentials "kube-pan-test-app-prod-api" --token="$CL_prod_api_KUBE_TOKEN"