diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..7a20736 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,46 @@ +name: Build and Publish Docker Image + +on: + push: + branches: + - main + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: docker.io + IMAGE_NAME: ${{ github.event.repository.name }} + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Get version + id: get_version + run: | + GIT_VERSION=$(git describe --dirty --always --long --abbrev=7 --tags) + VERSION="v${GIT_VERSION}" + echo "VERSION=${VERSION}" >> $GITHUB_ENV + echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_ENV + echo "LATEST_TAG=${{ env.REGISTRY }}/${{ vars.DOCKERHUB_USER }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_OUTPUT" + echo "VERSION_TAG=${{ env.REGISTRY }}/${{ vars.DOCKERHUB_USER }}/${{ env.IMAGE_NAME }}:${VERSION}" >> $GITHUB_OUTPUT" + - + name: Login to ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ vars.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ env.LATEST_TAG }},${{ env.VERSION_TAG }}