From ed79384021af95794cd228a48546b3f00f97a3e4 Mon Sep 17 00:00:00 2001 From: dewgenenny Date: Sat, 28 Sep 2024 11:33:14 +0200 Subject: [PATCH] Update docker-image.yml --- .github/workflows/docker-image.yml | 79 +++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 3b7324d..19c67cd 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,26 +1,59 @@ -name: Build Docker Image +name: Build and Push Docker Image to Docker Hub + on: push: - branches: - - main + branches: [ "dev", "main" ] + pull_request: + branches: [ "dev", "main" ] + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: docker.io + # github.repository as / + IMAGE_NAME: ${{ github.repository }} + jobs: - build: - name: push docker image to docker hub - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: login to docker hub - id: docker-hub - env: - username: ${{secrets.DOCKERHUB_USERNAME}} - password: ${{secrets.DOCKERHUB_PASSWORD}} - run: | - docker login -u $username -p $password - - name: build the docker image - id: build-docker-image - run: | - ls -la - docker build . -f Dockerfile -t dhruvin30/demo-image-test:latest - - name: push the docker image - id: push-docker-image - run: docker push ${{secrets.DOCKERHUB_USERNAME}}/demo-image-test:latest + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker-compose build --no-cache --force-rm + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Test the Docker image + run: docker-compose up -d + push_to_registry: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: "{{defaultContext}}" + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}