From bca46d96432401d84bef5d9530944a872083ef68 Mon Sep 17 00:00:00 2001 From: Jonathan Inge Arvesen Folland Date: Thu, 20 Mar 2025 12:49:47 +0100 Subject: [PATCH] Update build-docker.yml --- .github/workflows/build-docker.yml | 44 ++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index 8f1e3d8..abe41fe 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -1,4 +1,4 @@ -name: Build and Publish Docker Images to Docker Hub +name: Build, Publish, and Deploy Docker Images on: push: @@ -11,7 +11,7 @@ on: - '**/*.yml' jobs: - build: + build-and-publish: runs-on: [self-hosted] steps: @@ -54,3 +54,43 @@ jobs: docker push jonafoll/frontend:${{ github.sha }} docker push jonafoll/frontend:latest + deploy: + runs-on: [self-hosted] + needs: build-and-publish # Ensure this job runs after build-and-publish + + steps: + # Step 1: Log in to Docker Hub + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + # Step 2: Pull the latest Docker images + - name: Pull Backend Docker image + run: docker pull jonafoll/backend:latest + + - name: Pull Frontend Docker image + run: docker pull jonafoll/frontend:latest + + # Step 3: Stop and remove existing containers + - name: Stop and remove existing containers + run: | + docker stop backend-container || true + docker rm backend-container || true + docker stop frontend-container || true + docker rm frontend-container || true + + # Step 4: Run the updated Docker images + - name: Run Backend Docker container + run: docker run -d --name backend-container -p 5000:5000 jonafoll/backend:latest + + - name: Run Frontend Docker container + run: docker run -d --name frontend-container -p 3000:3000 jonafoll/frontend:latest + + # Step 5: Verify the containers are running + - name: Verify Backend container + run: docker ps --filter "name=backend-container" --format "{{.Status}}" | grep -q "Up" + + - name: Verify Frontend container + run: docker ps --filter "name=frontend-container" --format "{{.Status}}" | grep -q "Up"