diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index c7235065ee..1bcc227a68 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -3,6 +3,12 @@ name: Publish to Docker Hub on: release: types: [published] + workflow_dispatch: + inputs: + version: + description: "Version tag to build (e.g. 2.6.0)" + required: true + type: string permissions: contents: read @@ -15,30 +21,36 @@ jobs: IMAGE_NAME: diegosouzapw/omniroute steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v4 + with: + ref: ${{ github.event_name == 'workflow_dispatch' && format('refs/tags/v{0}', inputs.version) || '' }} - name: Set up QEMU (for multi-arch builds) - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub - uses: docker/login-action@v4 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Extract version from release tag + - name: Extract version from release tag or input id: version run: | - VERSION="${GITHUB_REF_NAME}" - VERSION="${VERSION#v}" + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + VERSION="${{ inputs.version }}" + else + VERSION="${GITHUB_REF_NAME}" + VERSION="${VERSION#v}" + fi echo "version=$VERSION" >> "$GITHUB_OUTPUT" echo "Publishing Docker image: $IMAGE_NAME:$VERSION" - name: Build and push multi-arch image - uses: docker/build-push-action@v7 + uses: docker/build-push-action@v6 with: context: . target: runner-base @@ -58,7 +70,7 @@ jobs: docker buildx imagetools inspect "${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}" - name: Update Docker Hub description - uses: peter-evans/dockerhub-description@v5 + uses: peter-evans/dockerhub-description@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }}