diff --git a/.github/workflows/push-to-docker.yaml b/.github/workflows/push-to-docker.yaml index 15cd427..944efb1 100644 --- a/.github/workflows/push-to-docker.yaml +++ b/.github/workflows/push-to-docker.yaml @@ -1,35 +1,43 @@ -name: Push to Docker Hub -on: - push: - branches: - - dev - -jobs: - build: - name: Build Image - runs-on: ubuntu-latest +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. - steps: - - name: Checkout code - uses: actions/checkout@v2 +# GitHub recommends pinning actions to a commit SHA. +# To get a newer version, you will need to update the SHA. +# You can also reference a tag or branch, but the action may change without warning. - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 +name: Publish Docker image - - name: Build Docker image - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/ubuntu-devops:latest -t ${{ secrets.DOCKER_USERNAME }}/ubuntu-devops:{{ github.sha }} . +on: + release: + types: [published] - push: - name: Push Image - needs: build +jobs: + push_to_registry: + name: Push Docker image to Docker Hub runs-on: ubuntu-latest - steps: - - name: Login to Docker Hub - uses: docker/login-action@v1 + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Push Docker image - run: docker push ${{ secrets.DOCKER_USERNAME }}/ubuntu-devops:latest + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{secrets.DOCKER_USERNAME}}/ubuntu-devops + + - name: Build and push Docker image + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}