default: image: registry.mareshq.com/mareshq/ci-toolkit:latest stages: - lint - build - deploy:dry-run - deploy lint next.js: stage: lint image: node:18-alpine3.17 script: - npm ci --frozen-lockfile - 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.googleClientID=dummy \ --set backoffice.secrets.googleClientSecret=dummy \ backoffice \ ./charts/backoffice rules: - if: $CI_COMMIT_BRANCH == "main" when: always 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.googleClientID=dummy \ --set backoffice.secrets.googleClientSecret=dummy \ backoffice \ ./charts/backoffice rules: - if: $CI_COMMIT_BRANCH == "production" when: always 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.googleClientID=$GOOGLE_CLIENT_ID \ --set backoffice.secrets.googleClientSecret=$GOOGLE_CLIENT_SECRET \ backoffice \ ./charts/backoffice environment: name: staging url: https://staging.backoffice.mareshq.com rules: - if: $CI_COMMIT_BRANCH == "main" when: always 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.googleClientID=$GOOGLE_CLIENT_ID \ --set backoffice.secrets.googleClientSecret=$GOOGLE_CLIENT_SECRET \ backoffice \ ./charts/backoffice environment: name: production url: https://backoffice.mareshq.com rules: - if: $CI_COMMIT_BRANCH == "production" when: always