@@ -41,24 +41,60 @@ jobs:
4141 build :
4242 runs-on : ubuntu-latest
4343 steps :
44+ - name : ' Setup jq'
45+ uses : dcarbone/install-jq-action@v3
46+ with :
47+ version : ' 1.7'
48+
4449 - name : Set environment variables
4550 shell : bash
4651 run : |
4752 # Get the short SHA of last commit
4853 echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
49-
54+
5055 # Get branch name - we don't use github.ref_head_name since we don't build on PRs
5156 echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
52-
57+
5358 # Set docker image tag
54- echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}"
55-
59+ IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}
60+
61+ # Check whether it's a release
62+ LATEST_TAG=$(
63+ curl -s -L \
64+ -H "Accept: application/vnd.github+json" \
65+ -H "Authorization: Bearer ${{ github.token }}" \
66+ https://api.github.com/repos/${{ github.repository }}/releases/latest \
67+ | jq -r '.tag_name'
68+ )
69+ IS_LATEST="false"
70+ if [[ "${LATEST_TAG}" == "${{ github.event.release.tag_name }}" ]]; then
71+ IS_LATEST="true"
72+ fi;
73+
5674 # Control which images to build
5775 echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
5876 echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
5977 echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
6078 echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
6179
80+ # Image names
81+ ALLINONE_IMAGE_NAMES=lowcoderorg/lowcoder-ce:${IMAGE_TAG}
82+ FRONTEND_IMAGE_NAMES=lowcoderorg/lowcoder-ce-frontend:${IMAGE_TAG}
83+ APISERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-api-service:${IMAGE_TAG}
84+ NODESERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-node-service:${IMAGE_TAG}
85+
86+ if [[ "${IS_LATEST}" == "true" ]]; then
87+ ALLINONE_IMAGE_NAMES="lowcoderorg/lowcoder-ce:latest,${ALLINONE_IMAGE_NAMES}"
88+ FRONTEND_IMAGE_NAMES="lowcoderorg/lowcoder-ce-frontend:latest,${FRONTEND_IMAGE_NAMES}"
89+ APISERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-api-service:latest,${APISERVICE_IMAGE_NAMES}"
90+ NODESERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-node-service:latest,${NODESERVICE_IMAGE_NAMES}"
91+ fi;
92+
93+ echo "ALLINONE_IMAGE_NAMES=${ALLINONE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
94+ echo "FRONTEND_IMAGE_NAMES=${FRONTEND_IMAGE_NAMES}" >> "${GITHUB_ENV}"
95+ echo "APISERVICE_IMAGE_NAMES=${APISERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
96+ echo "NODESERVICE_IMAGE_NAMES=${NODESERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
97+
6298 - name : Checkout lowcoder source
6399 uses : actions/checkout@v4
64100 with :
91127 linux/amd64
92128 linux/arm64
93129 push : true
94- tags : lowcoderorg/lowcoder-ce: ${{ env.IMAGE_TAG }}
130+ tags : ${{ env.ALLINONE_IMAGE_NAMES }}
95131
96132 - name : Build and push the frontend image
97133 if : ${{ env.BUILD_FRONTEND == 'true' }}
@@ -108,7 +144,7 @@ jobs:
108144 linux/amd64
109145 linux/arm64
110146 push : true
111- tags : lowcoderorg/lowcoder-ce-frontend: ${{ env.IMAGE_TAG }}
147+ tags : ${{ env.FRONTEND_IMAGE_NAMES }}
112148
113149 - name : Build and push the node service image
114150 if : ${{ env.BUILD_NODESERVICE == 'true' }}
@@ -120,7 +156,7 @@ jobs:
120156 linux/amd64
121157 linux/arm64
122158 push : true
123- tags : lowcoderorg/lowcoder-ce-node-service: ${{ env.IMAGE_TAG }}
159+ tags : ${{ env.NODESERVICE_IMAGE_NAMES }}
124160
125161 - name : Build and push the API service image
126162 if : ${{ env.BUILD_APISERVICE == 'true' }}
@@ -132,5 +168,5 @@ jobs:
132168 linux/amd64
133169 linux/arm64
134170 push : true
135- tags : lowcoderorg/lowcoder-ce-api-service: ${{ env.IMAGE_TAG }}
171+ tags : ${{ env.APISERVICE_IMAGE_NAMES }}
136172
0 commit comments