mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 11:30:15 +00:00
chore: prepare for v5.0.0-rc.1 release
- Update VERSION to 5.0.0-rc.1 - Add prerelease detection to create-release workflow - Mark RC releases as prereleases on GitHub (not 'latest') - Update publish-docker workflow to skip :latest tag for RCs - Support -rc.N, -alpha.N, and -beta.N version suffixes
This commit is contained in:
parent
2e06f6b966
commit
12ef347912
3 changed files with 92 additions and 29 deletions
80
.github/workflows/publish-docker.yml
vendored
80
.github/workflows/publish-docker.yml
vendored
|
|
@ -28,9 +28,18 @@ jobs:
|
|||
run: |
|
||||
TAG="${{ github.event.release.tag_name || inputs.tag }}"
|
||||
VERSION="${TAG#v}"
|
||||
|
||||
# Detect if this is a prerelease (RC, alpha, beta)
|
||||
IS_PRERELEASE="false"
|
||||
if [[ "$VERSION" =~ -rc\.[0-9]+$ ]] || [[ "$VERSION" =~ -alpha\.[0-9]+$ ]] || [[ "$VERSION" =~ -beta\.[0-9]+$ ]]; then
|
||||
IS_PRERELEASE="true"
|
||||
echo "Detected prerelease version - will NOT update :latest tag"
|
||||
fi
|
||||
|
||||
echo "tag=${TAG}" >> $GITHUB_OUTPUT
|
||||
echo "version=${VERSION}" >> $GITHUB_OUTPUT
|
||||
echo "Publishing Docker images for ${TAG}"
|
||||
echo "is_prerelease=${IS_PRERELEASE}" >> $GITHUB_OUTPUT
|
||||
echo "Publishing Docker images for ${TAG} (prerelease: ${IS_PRERELEASE})"
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
|
|
@ -75,36 +84,69 @@ jobs:
|
|||
return 1
|
||||
}
|
||||
|
||||
IS_PRERELEASE="${{ steps.version.outputs.is_prerelease }}"
|
||||
|
||||
echo "Copying pulse staging image to final tags..."
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse:${TAG} \
|
||||
--tag rcourtman/pulse:${VERSION} \
|
||||
--tag rcourtman/pulse:latest \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:latest \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse:${STAGING_TAG}"
|
||||
if [ "$IS_PRERELEASE" = "true" ]; then
|
||||
# For prereleases, only tag with version - do NOT update :latest
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse:${TAG} \
|
||||
--tag rcourtman/pulse:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${VERSION} \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse:${STAGING_TAG}"
|
||||
else
|
||||
# For stable releases, also update :latest
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse:${TAG} \
|
||||
--tag rcourtman/pulse:${VERSION} \
|
||||
--tag rcourtman/pulse:latest \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse:latest \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse:${STAGING_TAG}"
|
||||
fi
|
||||
|
||||
echo "Copying pulse-docker-agent staging image to final tags..."
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse-docker-agent:${TAG} \
|
||||
--tag rcourtman/pulse-docker-agent:${VERSION} \
|
||||
--tag rcourtman/pulse-docker-agent:latest \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:latest \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${STAGING_TAG}"
|
||||
if [ "$IS_PRERELEASE" = "true" ]; then
|
||||
# For prereleases, only tag with version - do NOT update :latest
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse-docker-agent:${TAG} \
|
||||
--tag rcourtman/pulse-docker-agent:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${VERSION} \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${STAGING_TAG}"
|
||||
else
|
||||
# For stable releases, also update :latest
|
||||
retry_push "docker buildx imagetools create \
|
||||
--tag rcourtman/pulse-docker-agent:${TAG} \
|
||||
--tag rcourtman/pulse-docker-agent:${VERSION} \
|
||||
--tag rcourtman/pulse-docker-agent:latest \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${TAG} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${VERSION} \
|
||||
--tag ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:latest \
|
||||
ghcr.io/${{ github.repository_owner }}/pulse-docker-agent:${STAGING_TAG}"
|
||||
fi
|
||||
|
||||
- name: Output image information
|
||||
run: |
|
||||
IS_PRERELEASE="${{ steps.version.outputs.is_prerelease }}"
|
||||
echo "✅ Docker images published successfully!"
|
||||
echo ""
|
||||
echo "Server images:"
|
||||
echo " - rcourtman/pulse:${{ steps.version.outputs.tag }}"
|
||||
echo " - rcourtman/pulse:${{ steps.version.outputs.version }}"
|
||||
echo " - rcourtman/pulse:latest"
|
||||
if [ "$IS_PRERELEASE" != "true" ]; then
|
||||
echo " - rcourtman/pulse:latest"
|
||||
fi
|
||||
echo ""
|
||||
echo "Agent images:"
|
||||
echo " - rcourtman/pulse-docker-agent:${{ steps.version.outputs.tag }}"
|
||||
echo " - rcourtman/pulse-docker-agent:${{ steps.version.outputs.version }}"
|
||||
echo " - rcourtman/pulse-docker-agent:latest"
|
||||
if [ "$IS_PRERELEASE" != "true" ]; then
|
||||
echo " - rcourtman/pulse-docker-agent:latest"
|
||||
fi
|
||||
echo ""
|
||||
if [ "$IS_PRERELEASE" = "true" ]; then
|
||||
echo "Note: :latest tags were NOT updated (this is a prerelease)"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue