From 99f8171fa8ca9650953d2d42fc7300ca5a3cebf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?s=E1=B4=A7=E1=B4=8D=E1=B4=9C=E1=B4=87=CA=9F=20=E1=B4=8D?= Date: Wed, 14 Feb 2024 00:16:12 +0000 Subject: [PATCH] Update main.yml --- .github/workflows/main.yml | 82 +++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 23 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62b3ba7..792d22a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,37 +2,73 @@ name: Build and Publish Docker Image on: push: - branches: - - main - tags: - - 'v*' # Trigger on tags that start with 'v' + branches: [main] + tag_push: + paths: + - '*/' # Include all tags in any directory jobs: build-and-publish: runs-on: ubuntu-latest steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Build Docker image - run: | - if [[ ${{ github.ref }} == 'refs/heads/main' ]]; then - DOCKER_TAG=latest - else - DOCKER_TAG=${{ github.ref }} - fi - docker build -t sami/brudi-rclone:${DOCKER_TAG} . - - - name: Log in to Docker Hub - uses: docker/login-action@v1 + + - name: Setup Docker Buildx + uses: docker-actions/setup-buildx-action@v1 with: + context: ${{ github.workspace }} + + - name: Login to Docker Hub + uses: actions/docker/login@v2 + with: + registry: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build image + id: build + uses: docker-buildx-action@v1 + with: + context: ${{ github.workspace }} + push: false + dockerfile: Dockerfile + + - name: Tag and publish image (main branch) + if: github.ref == 'refs/heads/main' + uses: docker-actions/push-image@v2 + with: + context: ${{ github.workspace }} + registry: ${{ secrets.DOCKERHUB_USERNAME }} + tag: latest + + - name: Tag and publish image (git tags) + if: startsWith(github.event.ref, 'refs/tags/') + uses: docker-actions/tag-image@v1 + with: + context: ${{ github.workspace }} + registry: ${{ secrets.DOCKERHUB_USERNAME }} + image: ${{ steps.build.outputs.image }} + tag: ${{ github.event.ref.replace('refs/tags/', '') }} + + - name: Publish tagged image + uses: docker-actions/push-image@v2 + with: + context: ${{ github.workspace }} + registry: ${{ secrets.DOCKERHUB_USERNAME }} + tag: ${{ github.event.ref.replace('refs/tags/', '') }} + + - name: Set output image name + uses: actions/set-output@v1 + with: + name: image_name + value: ${{ steps.build.outputs.image }} + + - name: Save image to GitHub Container Registry (optional) + if: github.event.action == 'push' && github.ref == 'refs/heads/main' + uses: actions/create-github-container-registry-image@v1 + with: + name: sami/brudi-rclone + image: ${{ steps.build.outputs.image }} - - name: Push image to Docker Hub - run: | - docker push sami/brudi-rclone:${DOCKER_TAG}