image: docker:20.10@sha256:2967f0819c84dd589ed0a023b9d25dcfe7a3c123d5bf784ffbb77edf55335f0c include: - local: '.gitlab-ci-template.yml' - local: 'main-website/.gitlab-ci.yml' - local: 'lawfirm-demos/.gitlab-ci.yml' stages: - build - dockerize - deploy - sync variables: CI_REGISTRY_IMAGE: $CI_REGISTRY/$CI_PROJECT_PATH PROJECT_NAME: $CI_PROJECT_NAME TAG: $CI_COMMIT_REF_SLUG NEXT_PUBLIC_ENV: "production" cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ - .next/cache/ .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: /opt/rheinsw-demo rules: - if: '$CI_COMMIT_BRANCH == "dev" || $CI_COMMIT_BRANCH == "pipeline"' deploy_prod: extends: .deploy-template variables: TAG: production REMOTE_ENV_PATH: /opt/rheinsw-demo rules: *deploy_production_rule