Skip to content

Commit ad66e74

Browse files
authored
bugfix: release job parsing version incorrectly (#578)
1 parent 7638b6c commit ad66e74

1 file changed

Lines changed: 29 additions & 10 deletions

File tree

.github/workflows/container-release.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ jobs:
3232
run: |
3333
platform=${{ matrix.config.platform }}
3434
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
35-
# Extract version part after last dash
35+
# Extract version from tag (e.g. "contender_cli-v0.10.1" -> "v0.10.1")
3636
ver="${GITHUB_REF#refs/*/}"
37-
ver="${ver##*-}"
37+
ver="${ver#contender_cli-}"
3838
# Ensure it starts with 'v'
3939
if [[ "$ver" != v* ]]; then
4040
ver="v$ver"
@@ -109,6 +109,25 @@ jobs:
109109
username: ${{ secrets.FLASHBOTS_DOCKERHUB_USERNAME }}
110110
password: ${{ secrets.FLASHBOTS_DOCKERHUB_TOKEN }}
111111

112+
- name: Check if prerelease
113+
id: check
114+
run: |
115+
# Extract version from tag (e.g. "contender_cli-v0.10.1" -> "v0.10.1")
116+
ver="${{ github.ref_name }}"
117+
ver="${ver#contender_cli-}"
118+
if [[ "$ver" != v* ]]; then
119+
ver="v$ver"
120+
fi
121+
echo "version=$ver" >> $GITHUB_OUTPUT
122+
# Strip leading 'v' for bare version (e.g. "0.10.1")
123+
echo "bare_version=${ver#v}" >> $GITHUB_OUTPUT
124+
dash_count=$(echo "${{ github.ref_name }}" | tr -cd '-' | wc -c)
125+
if [ "$dash_count" -ge 2 ]; then
126+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
127+
else
128+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
129+
fi
130+
112131
- name: Set up Docker Buildx
113132
uses: docker/setup-buildx-action@v4
114133

@@ -119,9 +138,9 @@ jobs:
119138
images: ${{ env.REGISTRY_IMAGE }}
120139
tags: |
121140
type=sha
122-
type=pep440,pattern={{version}}
123-
type=pep440,pattern={{major}}.{{minor}}
124-
type=raw,value=latest,enable=${{ !contains(github.ref_name, '-') }}
141+
type=raw,value=${{ steps.check.outputs.bare_version }}
142+
type=raw,value=${{ steps.check.outputs.version }}
143+
type=raw,value=latest,enable=${{ steps.check.outputs.is_prerelease != 'true' }}
125144
126145
- name: Create manifest list and push
127146
working-directory: /tmp/digests
@@ -131,7 +150,7 @@ jobs:
131150
132151
- name: Inspect image
133152
run: |
134-
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
153+
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.check.outputs.bare_version }}
135154
136155
- name: Login to GHCR
137156
uses: docker/login-action@v4
@@ -146,16 +165,16 @@ jobs:
146165
- name: Push to GHCR
147166
run: |
148167
regctl image copy \
149-
${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \
150-
ghcr.io/${{ github.repository }}:${{ steps.meta.outputs.version }}
168+
${{ env.REGISTRY_IMAGE }}:${{ steps.check.outputs.bare_version }} \
169+
ghcr.io/${{ github.repository }}:${{ steps.check.outputs.bare_version }}
151170
152171
- name: Push latest tag to GHCR
153-
if: ${{ !contains(github.ref_name, '-') }}
172+
if: ${{ steps.check.outputs.is_prerelease != 'true' }}
154173
run: |
155174
regctl image copy \
156175
${{ env.REGISTRY_IMAGE }}:latest \
157176
ghcr.io/${{ github.repository }}:latest
158177
159178
- name: Inspect image
160179
run: |
161-
docker buildx imagetools inspect ghcr.io/${{ github.repository }}:${{ steps.meta.outputs.version }}
180+
docker buildx imagetools inspect ghcr.io/${{ github.repository }}:${{ steps.check.outputs.bare_version }}

0 commit comments

Comments
 (0)