diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 6d84b530..ca9a94fb 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -1,9 +1,9 @@ name: Publish Docker Image on: - push: - tags: - - 'v*.*.*' + release: + types: + - published concurrency: group: docker-release-${{ github.ref }} @@ -11,27 +11,32 @@ concurrency: jobs: publish: - if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref_name, '-') + if: ${{ !github.event.release.prerelease && startsWith(github.event.release.tag_name, 'v') && !contains(github.event.release.tag_name, '-') }} runs-on: ubuntu-latest permissions: contents: read packages: write + env: + RELEASE_TAG: ${{ github.event.release.tag_name }} + steps: - name: Checkout release tag uses: actions/checkout@v4 + with: + ref: ${{ github.event.release.tag_name }} - name: Validate stable semver tag id: tag run: | - if [[ "${GITHUB_REF_NAME}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + if [[ "${RELEASE_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "publish=true" >> "$GITHUB_OUTPUT" exit 0 fi echo "publish=false" >> "$GITHUB_OUTPUT" - echo "Skipping non-stable semver tag ${GITHUB_REF_NAME}" + echo "Skipping non-stable semver tag ${RELEASE_TAG}" - name: Set up QEMU if: steps.tag.outputs.publish == 'true' @@ -45,7 +50,7 @@ jobs: if: steps.tag.outputs.publish == 'true' id: meta run: | - VERSION="${GITHUB_REF_NAME#v}" + VERSION="${RELEASE_TAG#v}" MINOR="${VERSION%.*}" MAJOR="${VERSION%%.*}" OWNER_LOWER=$(echo "${GITHUB_REPOSITORY_OWNER}" | tr '[:upper:]' '[:lower:]')