Skip to content

Commit 88747d0

Browse files
mguptahubaaryan610
authored andcommitted
feat: muti-arch build (#3569)
* arm build, supporting centos & alpine
1 parent 638fcc9 commit 88747d0

File tree

6 files changed

+237
-174
lines changed

6 files changed

+237
-174
lines changed

.github/workflows/build-branch.yml

+90-62
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@ name: Branch Build
22

33
on:
44
workflow_dispatch:
5-
inputs:
6-
branch_name:
7-
description: "Branch Name"
8-
required: true
9-
default: "preview"
105
push:
116
branches:
127
- master
@@ -16,49 +11,71 @@ on:
1611
types: [released, prereleased]
1712

1813
env:
19-
TARGET_BRANCH: ${{ inputs.branch_name || github.ref_name || github.event.release.target_commitish }}
14+
TARGET_BRANCH: ${{ github.ref_name || github.event.release.target_commitish }}
2015

2116
jobs:
2217
branch_build_setup:
2318
name: Build-Push Web/Space/API/Proxy Docker Image
24-
runs-on: ubuntu-20.04
25-
steps:
26-
- name: Check out the repo
27-
uses: actions/[email protected]
19+
runs-on: ubuntu-latest
2820
outputs:
29-
gh_branch_name: ${{ env.TARGET_BRANCH }}
21+
gh_branch_name: ${{ steps.set_env_variables.outputs.TARGET_BRANCH }}
22+
gh_buildx_driver: ${{ steps.set_env_variables.outputs.BUILDX_DRIVER }}
23+
gh_buildx_version: ${{ steps.set_env_variables.outputs.BUILDX_VERSION }}
24+
gh_buildx_platforms: ${{ steps.set_env_variables.outputs.BUILDX_PLATFORMS }}
25+
gh_buildx_endpoint: ${{ steps.set_env_variables.outputs.BUILDX_ENDPOINT }}
26+
27+
steps:
28+
- id: set_env_variables
29+
name: Set Environment Variables
30+
run: |
31+
if [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
32+
echo "BUILDX_DRIVER=cloud" >> $GITHUB_OUTPUT
33+
echo "BUILDX_VERSION=lab:latest" >> $GITHUB_OUTPUT
34+
echo "BUILDX_PLATFORMS=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
35+
echo "BUILDX_ENDPOINT=makeplane/plane-dev" >> $GITHUB_OUTPUT
36+
else
37+
echo "BUILDX_DRIVER=docker-container" >> $GITHUB_OUTPUT
38+
echo "BUILDX_VERSION=latest" >> $GITHUB_OUTPUT
39+
echo "BUILDX_PLATFORMS=linux/amd64" >> $GITHUB_OUTPUT
40+
echo "BUILDX_ENDPOINT=local" >> $GITHUB_OUTPUT
41+
fi
42+
echo "TARGET_BRANCH=${{ env.TARGET_BRANCH }}" >> $GITHUB_OUTPUT
3043
3144
branch_build_push_frontend:
3245
runs-on: ubuntu-20.04
3346
needs: [branch_build_setup]
3447
env:
3548
FRONTEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
49+
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
50+
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
51+
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
52+
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
53+
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
3654
steps:
3755
- name: Set Frontend Docker Tag
3856
run: |
39-
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
57+
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
4058
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:${{ github.event.release.tag_name }}
41-
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
59+
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
4260
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-frontend:stable
4361
else
4462
TAG=${{ env.FRONTEND_TAG }}
4563
fi
4664
echo "FRONTEND_TAG=${TAG}" >> $GITHUB_ENV
47-
- name: Docker Setup QEMU
48-
uses: docker/[email protected]
49-
50-
- name: Set up Docker Buildx
51-
uses: docker/[email protected]
52-
with:
53-
platforms: linux/amd64,linux/arm64
54-
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
5565
5666
- name: Login to Docker Hub
57-
uses: docker/login-action@v3.0.0
67+
uses: docker/login-action@v3
5868
with:
5969
username: ${{ secrets.DOCKERHUB_USERNAME }}
6070
password: ${{ secrets.DOCKERHUB_TOKEN }}
6171

72+
- name: Set up Docker Buildx
73+
uses: docker/setup-buildx-action@v3
74+
with:
75+
driver: ${{ env.BUILDX_DRIVER }}
76+
version: ${{ env.BUILDX_VERSION }}
77+
endpoint: ${{ env.BUILDX_ENDPOINT }}
78+
6279
- name: Check out the repo
6380
uses: actions/[email protected]
6481

@@ -67,7 +84,7 @@ jobs:
6784
with:
6885
context: .
6986
file: ./web/Dockerfile.web
70-
platforms: linux/amd64
87+
platforms: ${{ env.BUILDX_PLATFORMS }}
7188
tags: ${{ env.FRONTEND_TAG }}
7289
push: true
7390
env:
@@ -80,33 +97,36 @@ jobs:
8097
needs: [branch_build_setup]
8198
env:
8299
SPACE_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ needs.branch_build_setup.outputs.gh_branch_name }}
100+
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
101+
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
102+
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
103+
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
104+
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
83105
steps:
84106
- name: Set Space Docker Tag
85107
run: |
86-
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
108+
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
87109
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-space:${{ github.event.release.tag_name }}
88-
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
110+
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
89111
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-space:stable
90112
else
91113
TAG=${{ env.SPACE_TAG }}
92114
fi
93115
echo "SPACE_TAG=${TAG}" >> $GITHUB_ENV
94116
95-
- name: Docker Setup QEMU
96-
uses: docker/[email protected]
97-
98-
- name: Set up Docker Buildx
99-
uses: docker/[email protected]
100-
with:
101-
platforms: linux/amd64,linux/arm64
102-
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
103-
104117
- name: Login to Docker Hub
105-
uses: docker/login-action@v3.0.0
118+
uses: docker/login-action@v3
106119
with:
107120
username: ${{ secrets.DOCKERHUB_USERNAME }}
108121
password: ${{ secrets.DOCKERHUB_TOKEN }}
109122

123+
- name: Set up Docker Buildx
124+
uses: docker/setup-buildx-action@v3
125+
with:
126+
driver: ${{ env.BUILDX_DRIVER }}
127+
version: ${{ env.BUILDX_VERSION }}
128+
endpoint: ${{ env.BUILDX_ENDPOINT }}
129+
110130
- name: Check out the repo
111131
uses: actions/[email protected]
112132

@@ -115,7 +135,7 @@ jobs:
115135
with:
116136
context: .
117137
file: ./space/Dockerfile.space
118-
platforms: linux/amd64
138+
platforms: ${{ env.BUILDX_PLATFORMS }}
119139
tags: ${{ env.SPACE_TAG }}
120140
push: true
121141
env:
@@ -128,33 +148,36 @@ jobs:
128148
needs: [branch_build_setup]
129149
env:
130150
BACKEND_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ needs.branch_build_setup.outputs.gh_branch_name }}
151+
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
152+
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
153+
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
154+
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
155+
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
131156
steps:
132157
- name: Set Backend Docker Tag
133158
run: |
134-
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
159+
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
135160
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:${{ github.event.release.tag_name }}
136-
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
161+
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
137162
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-backend:stable
138163
else
139164
TAG=${{ env.BACKEND_TAG }}
140165
fi
141166
echo "BACKEND_TAG=${TAG}" >> $GITHUB_ENV
142167
143-
- name: Docker Setup QEMU
144-
uses: docker/[email protected]
145-
146-
- name: Set up Docker Buildx
147-
uses: docker/[email protected]
148-
with:
149-
platforms: linux/amd64,linux/arm64
150-
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
151-
152168
- name: Login to Docker Hub
153-
uses: docker/login-action@v3.0.0
169+
uses: docker/login-action@v3
154170
with:
155171
username: ${{ secrets.DOCKERHUB_USERNAME }}
156172
password: ${{ secrets.DOCKERHUB_TOKEN }}
157173

174+
- name: Set up Docker Buildx
175+
uses: docker/setup-buildx-action@v3
176+
with:
177+
driver: ${{ env.BUILDX_DRIVER }}
178+
version: ${{ env.BUILDX_VERSION }}
179+
endpoint: ${{ env.BUILDX_ENDPOINT }}
180+
158181
- name: Check out the repo
159182
uses: actions/[email protected]
160183

@@ -163,46 +186,50 @@ jobs:
163186
with:
164187
context: ./apiserver
165188
file: ./apiserver/Dockerfile.api
166-
platforms: linux/amd64
189+
platforms: ${{ env.BUILDX_PLATFORMS }}
167190
push: true
168191
tags: ${{ env.BACKEND_TAG }}
169192
env:
170193
DOCKER_BUILDKIT: 1
171194
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
172195
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
173196

197+
174198
branch_build_push_proxy:
175199
runs-on: ubuntu-20.04
176200
needs: [branch_build_setup]
177201
env:
178202
PROXY_TAG: ${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ needs.branch_build_setup.outputs.gh_branch_name }}
203+
TARGET_BRANCH: ${{ needs.branch_build_setup.outputs.gh_branch_name }}
204+
BUILDX_DRIVER: ${{ needs.branch_build_setup.outputs.gh_buildx_driver }}
205+
BUILDX_VERSION: ${{ needs.branch_build_setup.outputs.gh_buildx_version }}
206+
BUILDX_PLATFORMS: ${{ needs.branch_build_setup.outputs.gh_buildx_platforms }}
207+
BUILDX_ENDPOINT: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}
179208
steps:
180209
- name: Set Proxy Docker Tag
181210
run: |
182-
if [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
211+
if [ "${{ env.TARGET_BRANCH }}" == "master" ] && [ "${{ github.event_name }}" == "release" ]; then
183212
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:latest,${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:${{ github.event.release.tag_name }}
184-
elif [ "${{ needs.branch_build_setup.outputs.gh_branch_name }}" == "master" ]; then
213+
elif [ "${{ env.TARGET_BRANCH }}" == "master" ]; then
185214
TAG=${{ secrets.DOCKERHUB_USERNAME }}/plane-proxy:stable
186215
else
187216
TAG=${{ env.PROXY_TAG }}
188217
fi
189218
echo "PROXY_TAG=${TAG}" >> $GITHUB_ENV
190219
191-
- name: Docker Setup QEMU
192-
uses: docker/[email protected]
193-
194-
- name: Set up Docker Buildx
195-
uses: docker/[email protected]
196-
with:
197-
platforms: linux/amd64,linux/arm64
198-
buildkitd-flags: "--allow-insecure-entitlement security.insecure"
199-
200220
- name: Login to Docker Hub
201-
uses: docker/login-action@v3.0.0
221+
uses: docker/login-action@v3
202222
with:
203223
username: ${{ secrets.DOCKERHUB_USERNAME }}
204224
password: ${{ secrets.DOCKERHUB_TOKEN }}
205225

226+
- name: Set up Docker Buildx
227+
uses: docker/setup-buildx-action@v3
228+
with:
229+
driver: ${{ env.BUILDX_DRIVER }}
230+
version: ${{ env.BUILDX_VERSION }}
231+
endpoint: ${{ env.BUILDX_ENDPOINT }}
232+
206233
- name: Check out the repo
207234
uses: actions/[email protected]
208235

@@ -211,10 +238,11 @@ jobs:
211238
with:
212239
context: ./nginx
213240
file: ./nginx/Dockerfile
214-
platforms: linux/amd64
241+
platforms: ${{ env.BUILDX_PLATFORMS }}
215242
tags: ${{ env.PROXY_TAG }}
216243
push: true
217244
env:
218245
DOCKER_BUILDKIT: 1
219246
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
220247
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
248+

deploy/1-click/install.sh

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22

3+
# Check if the user has sudo access
34
if command -v curl &> /dev/null; then
45
sudo curl -sSL \
56
-o /usr/local/bin/plane-app \
@@ -11,6 +12,6 @@ else
1112
fi
1213

1314
sudo chmod +x /usr/local/bin/plane-app
14-
sudo sed -i 's/export BRANCH=${BRANCH:-master}/export BRANCH='${BRANCH:-master}'/' /usr/local/bin/plane-app
15+
sudo sed -i 's/export DEPLOY_BRANCH=${BRANCH:-master}/export DEPLOY_BRANCH='${BRANCH:-master}'/' /usr/local/bin/plane-app
1516

16-
sudo plane-app --help
17+
plane-app --help

0 commit comments

Comments
 (0)