stages: - build - deploy-dev - deploy-prod .deploy: before_script: - docker login -u mathwave -p $DOCKERHUB_PASSWORD - docker network create -d overlay --attachable swarmpit-nginx || true - docker network create -d overlay --attachable common-infra-nginx || true - mkdir /sprint-data/mongo || true - mkdir /sprint-data/redis || true - mkdir /sprint-data/rabbitmq || true - mkdir /sprint-data/certs || true - mkdir /sprint-data/gitea || true - chmod 777 /sprint-data/redis - chmod 777 /sprint-data/rabbitmq - chmod 777 /sprint-data/gitea build: stage: build tags: - dev before_script: - docker login -u mathwave -p $DOCKERHUB_PASSWORD script: - docker build -t mathwave/sprint-repo:sprint-infra-nginx-dev nginx/nginx-dev - docker push mathwave/sprint-repo:sprint-infra-nginx-dev - docker build -t mathwave/sprint-repo:sprint-infra-nginx-prod nginx/nginx-prod - docker push mathwave/sprint-repo:sprint-infra-nginx-prod - docker build -t mathwave/sprint-repo:gitea-runner gitea-runner - docker push mathwave/sprint-repo:gitea-runner deploy-dev: stage: deploy-dev extends: - .deploy tags: - dev rules: - if: '$CI_COMMIT_BRANCH == "master"' when: on_success - when: manual script: - docker stack deploy --with-registry-auth -c ./.deploy-swarmpit/deploy-dev.yaml swarmpit - docker stack deploy --with-registry-auth -c ./.deploy-portainer/deploy-dev.yaml portainer - docker stack deploy --with-registry-auth -c ./.deploy-infra/deploy-dev.yaml infra deploy-prod: stage: deploy-prod extends: - .deploy tags: - prod only: - master when: manual script: - docker stack deploy --with-registry-auth -c ./.deploy-swarmpit/deploy-prod.yaml swarmpit - docker stack deploy --with-registry-auth -c ./.deploy-portainer/deploy-prod.yaml portainer - docker stack deploy --with-registry-auth -c ./.deploy-infra/deploy-prod.yaml infra