3131 run : npm run build
3232 working-directory : frontend
3333
34+ - name : Extract version from tag
35+ id : extract_version
36+ run : |
37+ if [ "${{ github.event_name }}" = "release" ]; then
38+ VERSION=${{ github.event.release.tag_name }}
39+ # Remove 'v' prefix if present
40+ VERSION=${VERSION#v}
41+ echo "version=${VERSION}" >> $GITHUB_OUTPUT
42+ echo "is_release=true" >> $GITHUB_OUTPUT
43+ else
44+ echo "version=latest" >> $GITHUB_OUTPUT
45+ echo "is_release=false" >> $GITHUB_OUTPUT
46+ fi
47+
3448 - name : Log in to Docker Hub
3549 uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
3650 with :
@@ -41,10 +55,40 @@ jobs:
4155 run : docker buildx create --name nevuBuilder --use
4256
4357 - name : Build and push the amd64 image
44- run : docker buildx build --platform linux/amd64 -t ipmake/nevu:latest-amd64 . --push
58+ run : |
59+ if [ "${{ steps.extract_version.outputs.is_release }}" = "true" ]; then
60+ docker buildx build --platform linux/amd64 \
61+ -t ipmake/nevu:latest-amd64 \
62+ -t ipmake/nevu:${{ steps.extract_version.outputs.version }}-amd64 \
63+ . --push
64+ else
65+ docker buildx build --platform linux/amd64 -t ipmake/nevu:latest-amd64 . --push
66+ fi
4567
4668 - name : Build and push the arm64 image
47- run : docker buildx build --platform linux/arm64 -t ipmake/nevu:latest-arm64 . --push
69+ run : |
70+ if [ "${{ steps.extract_version.outputs.is_release }}" = "true" ]; then
71+ docker buildx build --platform linux/arm64 \
72+ -t ipmake/nevu:latest-arm64 \
73+ -t ipmake/nevu:${{ steps.extract_version.outputs.version }}-arm64 \
74+ . --push
75+ else
76+ docker buildx build --platform linux/arm64 -t ipmake/nevu:latest-arm64 . --push
77+ fi
4878
4979 - name : Build and push multi-platform Docker image
50- run : docker buildx imagetools create --tag ipmake/nevu:latest ipmake/nevu:latest-amd64 ipmake/nevu:latest-arm64
80+ run : |
81+ if [ "${{ steps.extract_version.outputs.is_release }}" = "true" ]; then
82+ # Create versioned multi-platform image
83+ docker buildx imagetools create \
84+ --tag ipmake/nevu:${{ steps.extract_version.outputs.version }} \
85+ ipmake/nevu:${{ steps.extract_version.outputs.version }}-amd64 \
86+ ipmake/nevu:${{ steps.extract_version.outputs.version }}-arm64
87+ # Create latest multi-platform image
88+ docker buildx imagetools create \
89+ --tag ipmake/nevu:latest \
90+ ipmake/nevu:latest-amd64 \
91+ ipmake/nevu:latest-arm64
92+ else
93+ docker buildx imagetools create --tag ipmake/nevu:latest ipmake/nevu:latest-amd64 ipmake/nevu:latest-arm64
94+ fi
0 commit comments