@@ -41,24 +41,60 @@ jobs:
41
41
build :
42
42
runs-on : ubuntu-latest
43
43
steps :
44
+ - name : ' Setup jq'
45
+ uses : dcarbone/install-jq-action@v3
46
+ with :
47
+ version : ' 1.7'
48
+
44
49
- name : Set environment variables
45
50
shell : bash
46
51
run : |
47
52
# Get the short SHA of last commit
48
53
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
49
-
54
+
50
55
# Get branch name - we don't use github.ref_head_name since we don't build on PRs
51
56
echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
52
-
57
+
53
58
# 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
+
56
74
# Control which images to build
57
75
echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
58
76
echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
59
77
echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
60
78
echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
61
79
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
+
62
98
- name : Checkout lowcoder source
63
99
uses : actions/checkout@v4
64
100
with :
91
127
linux/amd64
92
128
linux/arm64
93
129
push : true
94
- tags : lowcoderorg/lowcoder-ce: ${{ env.IMAGE_TAG }}
130
+ tags : ${{ env.ALLINONE_IMAGE_NAMES }}
95
131
96
132
- name : Build and push the frontend image
97
133
if : ${{ env.BUILD_FRONTEND == 'true' }}
@@ -108,7 +144,7 @@ jobs:
108
144
linux/amd64
109
145
linux/arm64
110
146
push : true
111
- tags : lowcoderorg/lowcoder-ce-frontend: ${{ env.IMAGE_TAG }}
147
+ tags : ${{ env.FRONTEND_IMAGE_NAMES }}
112
148
113
149
- name : Build and push the node service image
114
150
if : ${{ env.BUILD_NODESERVICE == 'true' }}
@@ -120,7 +156,7 @@ jobs:
120
156
linux/amd64
121
157
linux/arm64
122
158
push : true
123
- tags : lowcoderorg/lowcoder-ce-node-service: ${{ env.IMAGE_TAG }}
159
+ tags : ${{ env.NODESERVICE_IMAGE_NAMES }}
124
160
125
161
- name : Build and push the API service image
126
162
if : ${{ env.BUILD_APISERVICE == 'true' }}
@@ -132,5 +168,5 @@ jobs:
132
168
linux/amd64
133
169
linux/arm64
134
170
push : true
135
- tags : lowcoderorg/lowcoder-ce-api-service: ${{ env.IMAGE_TAG }}
171
+ tags : ${{ env.APISERVICE_IMAGE_NAMES }}
136
172
0 commit comments