Skip to content

Merge pull request #154 from OCA-UFCG/chore/reverse-proxy-contentful-url #77

Merge pull request #154 from OCA-UFCG/chore/reverse-proxy-contentful-url

Merge pull request #154 from OCA-UFCG/chore/reverse-proxy-contentful-url #77

Workflow file for this run

name: CI/CD DataNordeste Prod
on:
push:
tags: ["*"]
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update docker metadata with the tag
uses: docker/metadata-action@v4
id: meta
with:
images: ${{ vars.DOCKER_IMAGE_PROD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: true
file: Dockerfile.production
labels: ${{ steps.meta.outputs.labels }}
tags: |
${{ vars.DOCKER_IMAGE_PROD }}:latest
${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
build-args: |
NEXT_PUBLIC_CONTENTFUL_SPACE=${{ secrets.NEXT_PUBLIC_CONTENTFUL_SPACE }}
NEXT_PUBLIC_CONTENTFUL_ACCESS_TOKEN=${{ secrets.NEXT_PUBLIC_CONTENTFUL_ACCESS_TOKEN }}
NEXT_PUBLIC_GA_ID=${{ secrets.NEXT_PUBLIC_GA_ID }}
NEXT_PUBLIC_HOST_URL=${{ vars.NEXT_PUBLIC_HOST_URL_PROD }}
NEXT_PUBLIC_FIREBASE_API_KEY=${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
NEXT_PUBLIC_FIREBASE_PROJECT_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}
NEXT_PUBLIC_FIREBASE_APP_ID=${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}
NEXT_PUBLIC_RECAPTCHA_KEY=${{ secrets.NEXT_PUBLIC_RECAPTCHA_KEY }}
NEXT_PUBLIC_SURVEY_FEEDBACK_URL=${{ secrets.NEXT_PUBLIC_SURVEY_FEEDBACK_URL }}
NEXT_PUBLIC_APP_ENV="prod"
push-prod:
needs: build-image
runs-on: prod-runner
steps:
- name: Pull the latest image
run: sudo docker pull ${{ vars.DOCKER_IMAGE_PROD }}:latest
- name: Stop existing container
run: sudo docker rm -f ${{ vars.CONTAINER_NAME_PROD }} || true
- name: Run new container
run: sudo docker run --name ${{ vars.CONTAINER_NAME_PROD }} --restart unless-stopped -p ${{ vars.HOST_PORT_PROD }}:${{ vars.CONTAINER_PORT }} -d ${{ vars.DOCKER_IMAGE_PROD }}:latest
- name: Connect to network
run: docker network connect ${{ vars.NETWORK_NAME }} ${{ vars.CONTAINER_NAME_PROD }}
- name: Prune unused Docker images
run: sudo docker system prune -f
push-failover:
needs: build-image
runs-on: failover-runner
steps:
- name: Pull the latest image
run: sudo docker pull ${{ vars.DOCKER_IMAGE_PROD }}:latest
- name: Stop existing container
run: sudo docker rm -f ${{ vars.CONTAINER_NAME_PROD }} || true
- name: Run new container
run: sudo docker run --restart unless-stopped --name ${{ vars.CONTAINER_NAME_PROD }} -p ${{ vars.HOST_PORT_PROD }}:${{ vars.CONTAINER_PORT }} -d ${{ vars.DOCKER_IMAGE_PROD }}:latest
- name: Connect to network
run: docker network connect ${{ vars.NETWORK_NAME }} ${{ vars.CONTAINER_NAME_PROD }}
- name: Prune unused Docker images
run: sudo docker system prune -f