image: docker:20.10@sha256:2967f0819c84dd589ed0a023b9d25dcfe7a3c123d5bf784ffbb77edf55335f0c include: - local: '.gitlab-ci-template.yml' - local: 'backend/.gitlab-ci.yml' - local: 'frontend/.gitlab-ci.yml' stages: - build - docker-base - dockerize - deploy - sync variables: CI_REGISTRY_IMAGE: $CI_REGISTRY/$CI_PROJECT_PATH PROJECT_NAME: $CI_PROJECT_NAME # Next JS vars NEXT_PUBLIC_ENV: "production" OUTPUT_DIR: ".next" .deploy_production_rule: &deploy_production_rule - if: $CI_COMMIT_BRANCH == "production" when: manual allow_failure: true sync_dev_branch: stage: sync image: node:22@sha256:f6b9c31ace05502dd98ef777aaa20464362435dcc5e312b0e213121dcf7d8b95 rules: - if: '$CI_COMMIT_BRANCH == "production"' before_script: - git config --global user.email "gitlab-ci@rhein-software.dev" - git config --global user.name "GitLab CI" script: - git remote set-url origin "https://oauth2:${CI_JOB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" - git checkout dev - git pull origin dev - git merge --no-ff origin/production - git push origin dev deploy_dev: extends: .deploy-template variables: TAG: dev REMOTE_ENV_PATH: /rheinsw/dev rules: - if: '$CI_COMMIT_BRANCH == "dev" || $CI_COMMIT_BRANCH == "pipeline"' deploy_prod: extends: .deploy-template variables: TAG: production REMOTE_ENV_PATH: /rheinsw/prod rules: - if: '$CI_COMMIT_BRANCH == "production"'