1
- name : Build lowcoder dev image
1
+ name : Build lowcoder docker images
2
2
3
3
on :
4
+ workflow_dispatch :
5
+ inputs :
6
+ imageTag :
7
+ type : choice
8
+ description : ' Choose a tag for built docker image(s)'
9
+ required : true
10
+ default : ' latest'
11
+ options :
12
+ - latest
13
+ - test
14
+ build_allinone :
15
+ type : boolean
16
+ description : ' Build the All-In-One image'
17
+ default : true
18
+ build_frontend :
19
+ type : boolean
20
+ description : ' Build the Frontend image'
21
+ default : true
22
+ build_nodeservice :
23
+ type : boolean
24
+ description : ' Build the Node service image'
25
+ default : true
26
+ build_apiservice :
27
+ type : boolean
28
+ description : ' Build the API service image'
29
+ default : true
4
30
push :
5
31
branches : dev
32
+ paths :
33
+ - ' client/**'
34
+ - ' server/**'
35
+ - ' deploy/docker/**'
36
+ release :
37
+ types : [released]
6
38
7
39
jobs :
8
40
build :
9
41
runs-on : ubuntu-latest
10
42
steps :
11
- - name : Checkout lowcoder from 'dev' branch
43
+ - name : Set environment variables
44
+ shell : bash
45
+ run : |
46
+ # Get the short SHA of last commit
47
+ echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
48
+
49
+ # Get branch name - we don't use github.ref_head_name since we don't build on PRs
50
+ echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
51
+
52
+ # Set docker image tag
53
+ echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}"
54
+
55
+ # Control which images to build
56
+ echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
57
+ echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
58
+ echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
59
+ echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
60
+ - name : Checkout lowcoder source
12
61
uses : actions/checkout@v4
13
62
with :
14
- ref : dev
15
- - name : Get commit short SHA
16
- run : echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV
63
+ ref : ${{ env.BRANCH_NAME }}
17
64
- name : Log into Docker Hub
18
65
uses : docker/login-action@v3
19
66
with :
@@ -26,17 +73,56 @@ jobs:
26
73
driver : cloud
27
74
endpoint : " lowcoderorg/lowcoder-cloud-builder"
28
75
- name : Build and push the all-in-one image
76
+ if : ${{ env.BUILD_ALLINONE == 'true' }}
29
77
uses : docker/build-push-action@v6
30
78
env :
31
79
NODE_ENV : production
32
80
with :
33
81
file : ./deploy/docker/Dockerfile
34
82
build-args : |
35
83
REACT_APP_ENV=production
36
- REACT_APP_COMMIT_ID="dev #${SHORT_SHA}"
84
+ REACT_APP_COMMIT_ID="dev #${{ env. SHORT_SHA } }"
37
85
platforms : |
38
86
linux/amd64
39
87
linux/arm64
40
- push : true
41
- tags : lowcoderorg/lowcoder-ce:dev
88
+ push : false
89
+ tags : lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }}
90
+ - name : Build and push the frontend image
91
+ if : ${{ env.BUILD_FRONTEND == 'true' }}
92
+ uses : docker/build-push-action@v6
93
+ env :
94
+ NODE_ENV : production
95
+ with :
96
+ file : ./deploy/docker/Dockerfile
97
+ target : lowcoder-ce-frontend
98
+ build-args : |
99
+ REACT_APP_ENV=production
100
+ REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}"
101
+ platforms : |
102
+ linux/amd64
103
+ linux/arm64
104
+ push : false
105
+ tags : lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }}
106
+ - name : Build and push the node service image
107
+ if : ${{ env.BUILD_NODESERVICE == 'true' }}
108
+ uses : docker/build-push-action@v6
109
+ with :
110
+ file : ./deploy/docker/Dockerfile
111
+ target : lowcoder-ce-node-service
112
+ platforms : |
113
+ linux/amd64
114
+ linux/arm64
115
+ push : false
116
+ tags : lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }}
117
+ - name : Build and push the API service image
118
+ if : ${{ env.BUILD_APISERVICE == 'true' }}
119
+ uses : docker/build-push-action@v6
120
+ with :
121
+ file : ./deploy/docker/Dockerfile
122
+ target : lowcoder-ce-api-service
123
+ platforms : |
124
+ linux/amd64
125
+ linux/arm64
126
+ push : false
127
+ tags : lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }}
42
128
0 commit comments