@@ -135,7 +135,7 @@ jobs:
135135 # Push frontend multi-arch manifest
136136 push-frontend-image :
137137 runs-on : ubuntu-latest
138- if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release ')
138+ if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v ')
139139 needs :
140140 - build-mina-frontend-image
141141 steps :
@@ -151,13 +151,19 @@ jobs:
151151 echo "GIT_COMMIT=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
152152 echo "ADDITIONAL_TAGS=latest" >> $GITHUB_ENV
153153 elif [[ "${{ github.ref }}" == refs/tags/* ]]; then
154- echo "GIT_COMMIT=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
155- echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
156- elif [[ "${{ github.ref }}" == refs/heads/release/* ]]; then
157- BRANCH_NAME="${GITHUB_REF#refs/heads/}"
158- VERSION="${BRANCH_NAME#release/}"
159- echo "GIT_COMMIT=${VERSION}" >> $GITHUB_ENV
160- echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
154+ FULL_TAG=${GITHUB_REF#refs/tags/}
155+ MAJOR_MINOR=$(echo $FULL_TAG | sed -E 's/(v[0-9]+\.[0-9]+)\.[0-9]+/\1/')
156+
157+ echo "Will push Docker image with tag \"${FULL_TAG}\""
158+ echo "GIT_COMMIT=${FULL_TAG}" >> $GITHUB_ENV
159+
160+ if [[ "$FULL_TAG" =~ [+-] ]]; then
161+ echo "Found pre-release or build ID in version, will __NOT__ update Docker tag \"${MAJOR_MINOR}\""
162+ echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
163+ else
164+ echo "Will additionally push Docker image with tag \"${MAJOR_MINOR}\""
165+ echo "ADDITIONAL_TAGS=${MAJOR_MINOR}" >> $GITHUB_ENV
166+ fi
161167 fi
162168
163169 - name : Push frontend multi-arch manifest
@@ -173,7 +179,7 @@ jobs:
173179 # Push node multi-arch manifest (after node build completes)
174180 push-node-image :
175181 runs-on : ubuntu-latest
176- if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release ')
182+ if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v ')
177183 needs :
178184 - build-mina-node-image
179185 steps :
@@ -189,13 +195,19 @@ jobs:
189195 echo "GIT_COMMIT=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
190196 echo "ADDITIONAL_TAGS=latest" >> $GITHUB_ENV
191197 elif [[ "${{ github.ref }}" == refs/tags/* ]]; then
192- echo "GIT_COMMIT=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
193- echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
194- elif [[ "${{ github.ref }}" == refs/heads/release/* ]]; then
195- BRANCH_NAME="${GITHUB_REF#refs/heads/}"
196- VERSION="${BRANCH_NAME#release/}"
197- echo "GIT_COMMIT=${VERSION}" >> $GITHUB_ENV
198- echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
198+ FULL_TAG=${GITHUB_REF#refs/tags/}
199+ MAJOR_MINOR=$(echo $FULL_TAG | sed -E 's/(v[0-9]+\.[0-9]+)\.[0-9]+/\1/')
200+
201+ echo "Will push Docker image with tag \"${FULL_TAG}\""
202+ echo "GIT_COMMIT=${FULL_TAG}" >> $GITHUB_ENV
203+
204+ if [[ "$FULL_TAG" =~ [+-] ]]; then
205+ echo "Found pre-release or build ID in version, will __NOT__ update Docker tag \"${MAJOR_MINOR}\""
206+ echo "ADDITIONAL_TAGS=" >> $GITHUB_ENV
207+ else
208+ echo "Will additionally push Docker image with tag \"${MAJOR_MINOR}\""
209+ echo "ADDITIONAL_TAGS=${MAJOR_MINOR}" >> $GITHUB_ENV
210+ fi
199211 fi
200212
201213 - name : Push node multi-arch manifest
0 commit comments