name: Deploy Prod on: pull_request: branches: - prod types: [closed] jobs: build: name: Build runs-on: [ prod ] steps: - name: login run: docker login -u mathwave -p ${{ secrets.DOCKERHUB_PASSWORD }} - name: checkout uses: actions/checkout@v4 with: ref: prod - name: build nginx prod run: docker build -t mathwave/sprint-repo:sprint-infra-nginx-prod nginx/nginx-prod - name: build gitea runner run: docker build -t mathwave/sprint-repo:gitea-runner gitea-runner - name: build authelia run: docker build -t mathwave/sprint-repo:authelia authelia push: name: Push runs-on: [ prod ] needs: build steps: - name: push nginx prod run: docker push mathwave/sprint-repo:sprint-infra-nginx-prod - name: push gitea runner run: docker push mathwave/sprint-repo:gitea-runner - name: push authelia run: docker push mathwave/sprint-repo:authelia prepare: name: prepare runs-on: [prod] needs: push steps: - name: login run: docker login -u mathwave -p ${{ secrets.DOCKERHUB_PASSWORD }} - name: checkout uses: actions/checkout@v4 with: ref: prod - name: prepare run: chmod 777 ./prepare/run-production.sh && ./prepare/run-production.sh deploy-prod: name: Deploy prod runs-on: [prod] needs: push steps: - name: login run: docker login -u mathwave -p ${{ secrets.DOCKERHUB_PASSWORD }} - name: checkout uses: actions/checkout@v4 with: ref: prod - name: deploy swarmpit run: docker stack deploy --with-registry-auth -c ./.deploy-swarmpit/deploy-prod.yaml swarmpit - name: deploy portainer run: docker stack deploy --with-registry-auth -c ./.deploy-portainer/deploy-prod.yaml portainer - name: deploy infra env: MONGO_PASSWORD_PROD: ${{ secrets.MONGO_PASSWORD_PROD }} DB_PASSWORD_PROD: ${{ secrets.POSTGRES_PASSWORD_PROD }} CLICKHOUSE_PASSWORD_PROD: ${{ secrets.CLICKHOUSE_PASSWORD_PROD }} MINIO_PASSWORD_PROD: ${{ secrets.MINIO_PASSWORD_PROD }} MINIO_SECRET_KEY_PROD: ${{ secrets.MINIO_SECRET_KEY_PROD }} REDIS_PASSWORD_PROD: ${{ secrets.REDIS_PASSWORD_PROD }} RABBITMQ_PASSWORD_PROD: ${{ secrets.RABBITMQ_PASSWORD_PROD }} REGISTRATION_TOKEN: ${{ secrets.REGISTRATION_TOKEN }} AUTHTHELIA_JWT_SECRET: ${{ secrets.AUTHTHELIA_JWT_SECRET }} AUTHTHELIA_SESSION_SECRET: ${{ secrets.AUTHTHELIA_SESSION_SECRET }} AUTHELIA_STORAGE_ENCRYPTION_KEY: ${{ secrets.AUTHELIA_STORAGE_ENCRYPTION_KEY }} run: docker stack deploy --with-registry-auth -c ./.deploy-infra/deploy-prod.yaml infra