@@ -3,8 +3,9 @@ name: build-and-push-stable-image
33on :
44 push :
55 tags :
6- # Run on pushing tags like 'v1.0.0'
6+ # Match stable and rc versions, such as 'v1.0.0' or 'v0.23.0-rc .0'
77 - " v*.*.*"
8+ - " v*.*.*-rc.*"
89
910jobs :
1011 build-and-push-stable-image :
1920 uses : docker/setup-qemu-action@v3
2021
2122 - name : Extract build args
22- # Extract version from tag name
23- # Example: tag name `v1.0.0` sets up env.VERSION=1.0.0
23+ # Extract version number and check if it's an rc version
2424 run : |
25+ if [[ "${GITHUB_REF_NAME}" =~ -rc ]]; then
26+ echo "PRE_RELEASE=true" >> $GITHUB_ENV
27+ else
28+ echo "PRE_RELEASE=false" >> $GITHUB_ENV
29+ fi
2530 echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
2631
2732 - name : Login to Docker Hub
@@ -52,11 +57,14 @@ jobs:
5257 neosmemo/memos
5358 ghcr.io/usememos/memos
5459 tags : |
55- type=semver,pattern={{version}},value=${{ env.VERSION }}
56- type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }}
57- type=raw,value=stable
60+ # For stable versions, add stable and latest tags
61+ ${{ env.PRE_RELEASE == 'false' && "type=semver,pattern={{version}},value=${{ env.VERSION }}" }}
62+ ${{ env.PRE_RELEASE == 'false' && "type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }}" }}
63+ ${{ env.PRE_RELEASE == 'false' && "type=raw,value=stable" }}
64+ # For rc versions, only add rc tag
65+ ${{ env.PRE_RELEASE == 'true' && "type=raw,value=${{ env.VERSION }}" }}
5866 flavor : |
59- latest=true
67+ latest=${{ env.PRE_RELEASE == 'false' }}
6068 labels : |
6169 org.opencontainers.image.version=${{ env.VERSION }}
6270
0 commit comments