@@ -71,28 +71,46 @@ jobs:
71
71
- name : Install zstd
72
72
run : sudo apt-get install -y zstd
73
73
74
+ - name : Build Site
75
+ run : make site/out/index.html
76
+
74
77
- name : Build Linux and Windows Binaries
75
78
run : |
76
79
set -euo pipefail
77
80
go mod download
78
81
79
- version="$(./scripts/version.sh)"
80
- make -j \
81
- build/coder_"$version"_linux_{amd64,armv7,arm64}.{tar.gz,apk,deb,rpm} \
82
- build/coder_"$version"_windows_{amd64,arm64}.zip \
82
+ mkdir -p ./dist
83
+ # build slim binaries
84
+ ./scripts/build_go_slim.sh \
85
+ --output ./dist/ \
86
+ --compress 22 \
87
+ linux:amd64,armv7,arm64 \
88
+ windows:amd64,arm64 \
89
+ darwin:amd64,arm64
90
+
91
+ # build linux and windows binaries
92
+ ./scripts/build_go_matrix.sh \
93
+ --output ./dist/ \
94
+ --archive \
95
+ --package-linux \
96
+ linux:amd64,armv7,arm64 \
97
+ windows:amd64,arm64
83
98
84
99
- name : Build Linux Docker images
85
100
run : |
86
101
set -euxo pipefail
87
102
88
103
# build and (maybe) push Docker images for each architecture
89
- version="$(./scripts/version.sh)"
90
- push=""
91
- if [[ "$CODER_RELEASE" == *t* ]]; then
92
- push="push/"
93
- fi
94
- make -j \
95
- "$push"build/coder_"$version"_linux_{amd64,arm64,armv7}.tag
104
+ images=()
105
+ for arch in amd64 armv7 arm64; do
106
+ img="$(
107
+ ./scripts/build_docker.sh \
108
+ ${{ (!github.event.inputs.dry_run && !github.event.inputs.snapshot) && '--push' || '' }} \
109
+ --arch "$arch" \
110
+ ./dist/coder_*_linux_"$arch"
111
+ )"
112
+ images+=("$img")
113
+ done
96
114
97
115
# we can't build multi-arch if the images aren't pushed, so quit now
98
116
# if dry-running
@@ -102,13 +120,14 @@ jobs:
102
120
fi
103
121
104
122
# build and push multi-arch manifest
105
- make -j push/build/coder_"$version"_linux.tag
123
+ ./scripts/build_docker_multiarch.sh \
124
+ --push \
125
+ "${images[@]}"
106
126
107
127
# if the current version is equal to the highest (according to semver)
108
128
# version in the repo, also create a multi-arch image as ":latest" and
109
129
# push it
110
130
if [[ "$(git tag | grep '^v' | grep -vE '(rc|dev|-|\+|\/)' | sort -r --version-sort | head -n1)" == "v$(./scripts/version.sh)" ]]; then
111
- make -j push/build/coder_"$version"_linux.tag
112
131
./scripts/build_docker_multiarch.sh \
113
132
--push \
114
133
--target "$(./scripts/image_tag.sh --version latest)" \
@@ -120,11 +139,11 @@ jobs:
120
139
with :
121
140
name : linux
122
141
path : |
123
- ./build /*.zip
124
- ./build /*.tar.gz
125
- ./build /*.apk
126
- ./build /*.deb
127
- ./build /*.rpm
142
+ dist /*.zip
143
+ dist /*.tar.gz
144
+ dist /*.apk
145
+ dist /*.deb
146
+ dist /*.rpm
128
147
129
148
# The mac binaries get built on mac runners because they need to be signed,
130
149
# and the signing tool only runs on mac. This darwin job only builds the Mac
@@ -194,11 +213,22 @@ jobs:
194
213
set -euo pipefail
195
214
go mod download
196
215
197
- version="$(./scripts/version.sh)"
198
- make -j \
199
- build/coder_"$version"_darwin_{amd64,arm64}.zip
216
+ mkdir -p ./dist
217
+ # build slim binaries
218
+ ./scripts/build_go_slim.sh \
219
+ --output ./dist/ \
220
+ --compress 22 \
221
+ linux:amd64,armv7,arm64 \
222
+ windows:amd64,arm64 \
223
+ darwin:amd64,arm64
224
+
225
+ # build darwin binaries
226
+ ./scripts/build_go_matrix.sh \
227
+ --output ./dist/ \
228
+ --archive \
229
+ --sign-darwin \
230
+ darwin:amd64,arm64
200
231
env :
201
- CODER_SIGN_DARWIN : " 1"
202
232
AC_USERNAME : ${{ secrets.AC_USERNAME }}
203
233
AC_PASSWORD : ${{ secrets.AC_PASSWORD }}
204
234
AC_APPLICATION_IDENTITY : BDB050EB749EDD6A80C6F119BF1382ECA119CCCC
@@ -207,7 +237,7 @@ jobs:
207
237
uses : actions/upload-artifact@v3
208
238
with :
209
239
name : darwin
210
- path : ./build/ *.zip
240
+ path : ./dist/coder_ *.zip
211
241
212
242
publish :
213
243
runs-on : ubuntu-latest
@@ -248,11 +278,8 @@ jobs:
248
278
- name : Publish Helm
249
279
run : |
250
280
set -euxo pipefail
251
-
252
- version="$(./scripts/version.sh)"
253
- make -j \
254
- build/coder_helm_"$version".tgz
255
- mv ./build/*.tgz ./artifacts/
281
+ ./scripts/helm.sh --push
282
+ mv ./dist/*.tgz ./artifacts/
256
283
257
284
- name : Publish Release
258
285
run : |
0 commit comments