@@ -2,6 +2,11 @@ name: Draft release
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ version :
7+ description : The version to publish (include "v", i.e. "v4.9.1").
8+ type : string
9+ required : true
510
611permissions :
712 contents : write # For creating releases.
2126 name : x86-64 Linux build
2227 runs-on : ubuntu-latest
2328 timeout-minutes : 15
29+ needs : npm-version
2430 container : " centos:7"
2531 env :
2632 CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
@@ -51,15 +57,10 @@ jobs:
5157 - name : Install yarn
5258 run : npm install -g yarn
5359
54- - name : Download artifacts
55- uses : dawidd6/action-download-artifact@v2
56- id : download
60+ - name : Download npm package
61+ uses : actions/download-artifact@v3
5762 with :
58- branch : ${{ github.ref }}
59- workflow : build.yaml
60- workflow_conclusion : completed
61- check_artifacts : true
62- name : npm-package
63+ name : npm-release-package
6364
6465 - name : Decompress npm package
6566 run : tar -xzf package.tar.gz
9192 token : ${{ secrets.CODECOV_TOKEN }}
9293 if : success()
9394
95+ # NOTE@jsjoeio - we do this so we can strip out the v
96+ # i.e. v4.9.1 -> 4.9.1
97+ - name : Get and set VERSION
98+ run : |
99+ TAG="${{ inputs.version || github.ref_name }}"
100+ echo "VERSION=${TAG#v}" >> $GITHUB_ENV
101+
94102 - name : Build packages with nfpm
103+ env :
104+ VERSION : ${{ env.VERSION }}
95105 run : yarn package
96106
97107 - uses : softprops/action-gh-release@v1
@@ -123,6 +133,7 @@ jobs:
123133 name : Linux cross-compile builds
124134 runs-on : ubuntu-18.04
125135 timeout-minutes : 15
136+ needs : npm-version
126137 strategy :
127138 matrix :
128139 include :
@@ -159,15 +170,10 @@ jobs:
159170 env :
160171 PACKAGE : ${{ format('g++-{0}', matrix.prefix) }}
161172
162- - name : Download artifacts
163- uses : dawidd6/action-download-artifact@v2
164- id : download
173+ - name : Download npm package
174+ uses : actions/download-artifact@v3
165175 with :
166- branch : ${{ github.ref }}
167- workflow : build.yaml
168- workflow_conclusion : completed
169- check_artifacts : true
170- name : npm-package
176+ name : npm-release-package
171177
172178 - name : Decompress npm package
173179 run : tar -xzf package.tar.gz
@@ -181,7 +187,16 @@ jobs:
181187 tar -xf node-${NODE_VERSION}-linux-${NPM_CONFIG_ARCH}.tar.xz node-${NODE_VERSION}-linux-${NPM_CONFIG_ARCH}/bin/node --strip-components=2
182188 mv ./node ./release-standalone/lib/node
183189
190+ # NOTE@jsjoeio - we do this so we can strip out the v
191+ # i.e. v4.9.1 -> 4.9.1
192+ - name : Get and set VERSION
193+ run : |
194+ TAG="${{ inputs.version || github.ref_name }}"
195+ echo "VERSION=${TAG#v}" >> $GITHUB_ENV
196+
184197 - name : Build packages with nfpm
198+ env :
199+ VERSION : ${{ env.VERSION }}
185200 run : yarn package ${NPM_CONFIG_ARCH}
186201
187202 - uses : softprops/action-gh-release@v1
@@ -194,6 +209,7 @@ jobs:
194209 name : x86-64 macOS build
195210 runs-on : macos-latest
196211 timeout-minutes : 15
212+ needs : npm-version
197213 steps :
198214 - name : Checkout repo
199215 uses : actions/checkout@v3
@@ -209,15 +225,10 @@ jobs:
209225 curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm
210226 echo "$HOME/.local/bin" >> $GITHUB_PATH
211227
212- - name : Download artifacts
213- uses : dawidd6/action-download-artifact@v2
214- id : download
228+ - name : Download npm package
229+ uses : actions/download-artifact@v3
215230 with :
216- branch : ${{ github.ref }}
217- workflow : build.yaml
218- workflow_conclusion : completed
219- check_artifacts : true
220- name : npm-package
231+ name : npm-release-package
221232
222233 - name : Decompress npm package
223234 run : tar -xzf package.tar.gz
@@ -241,7 +252,16 @@ jobs:
241252 - name : Run native module tests on standalone release
242253 run : yarn test:native
243254
255+ # NOTE@jsjoeio - we do this so we can strip out the v
256+ # i.e. v4.9.1 -> 4.9.1
257+ - name : Get and set VERSION
258+ run : |
259+ TAG="${{ inputs.version || github.ref_name }}"
260+ echo "VERSION=${TAG#v}" >> $GITHUB_ENV
261+
244262 - name : Build packages with nfpm
263+ env :
264+ VERSION : ${{ env.VERSION }}
245265 run : yarn package
246266
247267 - uses : softprops/action-gh-release@v1
@@ -254,6 +274,23 @@ jobs:
254274 name : Upload npm package
255275 runs-on : ubuntu-latest
256276 timeout-minutes : 15
277+ needs : npm-version
278+ steps :
279+ - name : Download npm package
280+ uses : actions/download-artifact@v3
281+ with :
282+ name : npm-release-package
283+
284+ - uses : softprops/action-gh-release@v1
285+ with :
286+ draft : true
287+ discussion_category_name : " 📣 Announcements"
288+ files : ./package.tar.gz
289+
290+ npm-version :
291+ name : Modify package.json version
292+ runs-on : ubuntu-latest
293+ timeout-minutes : 15
257294 steps :
258295 - name : Download artifacts
259296 uses : dawidd6/action-download-artifact@v2
@@ -265,8 +302,32 @@ jobs:
265302 check_artifacts : true
266303 name : npm-package
267304
268- - uses : softprops/action-gh-release@v1
305+ - name : Decompress npm package
306+ run : tar -xzf package.tar.gz
307+
308+ # NOTE@jsjoeio - we do this so we can strip out the v
309+ # i.e. v4.9.1 -> 4.9.1
310+ - name : Get and set VERSION
311+ run : |
312+ TAG="${{ inputs.version || github.ref_name }}"
313+ echo "VERSION=${TAG#v}" >> $GITHUB_ENV
314+
315+ - name : Modify version
316+ env :
317+ VERSION : ${{ env.VERSION )}}
318+ run : |
319+ echo "Updating version in root package.json"
320+ npm version --prefix release "$VERSION"
321+
322+ echo "Updating version in lib/vscode/product.json"
323+ tmp=$(mktemp)
324+ jq '.codeServerVersion = "$VERSION"' release/lib/vscode/product.json > "$tmp" && mv "$tmp" release/lib/vscode/product.json
325+
326+ - name : Compress release package
327+ run : tar -czf package.tar.gz release
328+
329+ - name : Upload npm package artifact
330+ uses : actions/upload-artifact@v3
269331 with :
270- draft : true
271- discussion_category_name : " 📣 Announcements"
272- files : ./package.tar.gz
332+ name : npm-release-package
333+ path : ./package.tar.gz
0 commit comments