1
0
Fork 0
This repository has been archived on 2025-08-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
mareshq-backoffice-v1-monolith/.gitlab-ci.yml
Vojtech Mares 779c5aae0e
ci: fix jobs always running when previous stage failed
- future note: do not add `when: always`, it runs literarly always - not a surprise, but actually is
2023-09-03 11:48:02 +02:00

137 lines
4.2 KiB
YAML

default:
image: ghcr.io/vojtechmares/toolkit:latest
stages:
- lint
- build
- deploy:dry-run
- deploy
lint next.js:
stage: lint
image: node:18-alpine3.17
script:
- npm ci --frozen-lockfile
- SKIP_ENV_VALIDATION=1 npm run lint
lint helm:
stage: lint
script:
- helm lint ./charts/backoffice -f ./charts/backoffice/values.dummy.yaml --quiet
docker build:
stage: build
before_script:
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
- docker info
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
deploy to staging (dry-run):
stage: deploy:dry-run
script:
- >
helm \
upgrade \
--install \
--atomic \
--wait=true \
--wait-for-jobs=true \
--timeout=900s \
--dry-run=true \
--namespace backoffice-staging \
--values ./charts/backoffice/values.staging.yaml \
--set image.tag=$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA \
--set dockerconfigjsonBase64=dummy \
--set backoffice.secrets.databaseURL=dummy \
--set backoffice.secrets.nextauthSecret=dummy \
--set backoffice.secrets.keycloakClientID=dummy \
--set backoffice.secrets.keycloakClientSecret=dummy \
--set backoffice.secrets.keycloakIssuer=dummy \
backoffice \
./charts/backoffice
rules:
- if: $CI_COMMIT_BRANCH == "main"
deploy to production (dry-run):
stage: deploy:dry-run
script:
- >
helm \
upgrade \
--install \
--atomic \
--wait=true \
--wait-for-jobs=true \
--timeout=900s \
--dry-run=true \
--namespace backoffice-production \
--values ./charts/backoffice/values.production.yaml \
--set image.tag=$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA \
--set dockerconfigjsonBase64=dummy \
--set backoffice.secrets.databaseURL=dummy \
--set backoffice.secrets.nextauthSecret=dummy \
--set backoffice.secrets.keycloakClientID=dummy \
--set backoffice.secrets.keycloakClientSecret=dummy \
--set backoffice.secrets.keycloakIssuer=dummy \
backoffice \
./charts/backoffice
rules:
- if: $CI_COMMIT_BRANCH == "production"
deploy to staging:
stage: deploy
script:
- >
helm \
upgrade \
--install \
--atomic \
--wait=true \
--wait-for-jobs=true \
--timeout=900s \
--namespace backoffice-staging \
--values ./charts/backoffice/values.staging.yaml \
--set image.tag=$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA \
--set dockerconfigjsonBase64=$DOCKERCONFIG_BASE64 \
--set backoffice.secrets.databaseURL=$DATABASE_URL \
--set backoffice.secrets.nextauthSecret=$NEXTAUTH_SECRET \
--set backoffice.secrets.keycloakClientID=$KEYCLOAK_CLIENT_ID \
--set backoffice.secrets.keycloakClientSecret=$KEYCLOAK_CLIENT_SECRET \
--set backoffice.secrets.keycloakIssuer=$KEYCLOAK_ISSUER \
backoffice \
./charts/backoffice
environment:
name: staging
url: https://staging.backoffice.mareshq.com
rules:
- if: $CI_COMMIT_BRANCH == "main"
deploy to production:
stage: deploy
script:
- >
helm \
upgrade \
--install \
--atomic \
--wait=true \
--wait-for-jobs=true \
--timeout=900s \
--namespace backoffice-production \
--values ./charts/backoffice/values.production.yaml \
--set image.tag=$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA \
--set dockerconfigjsonBase64=$DOCKERCONFIG_BASE64 \
--set backoffice.secrets.databaseURL=$DATABASE_URL \
--set backoffice.secrets.nextauthSecret=$NEXTAUTH_SECRET \
--set backoffice.secrets.keycloakClientID=$KEYCLOAK_CLIENT_ID \
--set backoffice.secrets.keycloakClientSecret=$KEYCLOAK_CLIENT_SECRET \
--set backoffice.secrets.keycloakIssuer=$KEYCLOAK_ISSUER \
backoffice \
./charts/backoffice
environment:
name: production
url: https://backoffice.mareshq.com
rules:
- if: $CI_COMMIT_BRANCH == "production"