- future note: do not add `when: always`, it runs literarly always - not a surprise, but actually is
137 lines
4.2 KiB
YAML
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"
|