diff --git a/.github/workflows/build-and-push-stable-image.yml b/.github/workflows/build-and-push-stable-image.yml index 0248f2e1..33fdb648 100644 --- a/.github/workflows/build-and-push-stable-image.yml +++ b/.github/workflows/build-and-push-stable-image.yml @@ -3,8 +3,9 @@ name: build-and-push-stable-image on: push: tags: - # Run on pushing tags like 'v1.0.0' + # Match stable and rc versions, such as 'v1.0.0' or 'v0.23.0-rc.0' - "v*.*.*" + - "v*.*.*-rc.*" jobs: build-and-push-stable-image: @@ -19,9 +20,13 @@ jobs: uses: docker/setup-qemu-action@v3 - name: Extract build args - # Extract version from tag name - # Example: tag name `v1.0.0` sets up env.VERSION=1.0.0 + # Extract version number and check if it's an rc version run: | + if [[ "${GITHUB_REF_NAME}" =~ -rc ]]; then + echo "PRE_RELEASE=true" >> $GITHUB_ENV + else + echo "PRE_RELEASE=false" >> $GITHUB_ENV + fi echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV - name: Login to Docker Hub @@ -52,11 +57,14 @@ jobs: neosmemo/memos ghcr.io/usememos/memos tags: | - type=semver,pattern={{version}},value=${{ env.VERSION }} - type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }} - type=raw,value=stable + # For stable versions, add stable and latest tags + ${{ env.PRE_RELEASE == 'false' && "type=semver,pattern={{version}},value=${{ env.VERSION }}" }} + ${{ env.PRE_RELEASE == 'false' && "type=semver,pattern={{major}}.{{minor}},value=${{ env.VERSION }}" }} + ${{ env.PRE_RELEASE == 'false' && "type=raw,value=stable" }} + # For rc versions, only add rc tag + ${{ env.PRE_RELEASE == 'true' && "type=raw,value=${{ env.VERSION }}" }} flavor: | - latest=true + latest=${{ env.PRE_RELEASE == 'false' }} labels: | org.opencontainers.image.version=${{ env.VERSION }}