@@ -148,7 +148,7 @@ jobs:
148
148
env :
149
149
# vars used by installbuilder
150
150
INSTALLBUILDER_PATH : " /opt/installbuilder-20.9.0/bin/builder"
151
- INSTALLER_VARS : " project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Bridge"
151
+ # INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Bridge"
152
152
# vars passed to installbuilder to install https certs automatically
153
153
CERT_INSTALL : " ask_certificates_install=CI" # win(edge),mac(safari)
154
154
NO_CERT_INSTALL : " ask_certificates_install=CS" # linux
@@ -186,6 +186,16 @@ jobs:
186
186
187
187
steps :
188
188
189
+ # workaround to strip bugfix number from semver (only to make 1.1 release) I will change this in the future
190
+ - name : Set version env vars
191
+ # VERSION will be available only in the next step
192
+ run : |
193
+ echo "VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
194
+
195
+ - name : Set installer env vars
196
+ run : |
197
+ echo INSTALLER_VARS="project.outputDirectory=$PWD project.version=${VERSION%.*} workspace=$PWD realname=Arduino_Create_Bridge" >> $GITHUB_ENV
198
+
189
199
- name : Checkout
190
200
uses : actions/checkout@v2
191
201
with :
@@ -225,22 +235,22 @@ jobs:
225
235
# installbuilder reads the env vars with certs paths and use it to sign the installer.
226
236
- name : Launch Bitrock installbuilder-20 with CERT_INSTALL && CHOICE_CERT_INSTALL
227
237
run : |
228
- ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env. INSTALLER_VARS } } ${{ env.CERT_INSTALL }}
229
- mv -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CI${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-${{matrix.browser}}${{matrix.installer-extension}}
230
- ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env. INSTALLER_VARS } } ${{ env.CHOICE_CERT_INSTALL }}
231
- cp -vr ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-chrome${{matrix.installer-extension}}
232
- mv -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-firefox${{matrix.installer-extension}}
233
- rm -r ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-C*
238
+ ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.CERT_INSTALL }}
239
+ mv -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CI${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-${{matrix.browser}}${{matrix.installer-extension}}
240
+ ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.CHOICE_CERT_INSTALL }}
241
+ cp -vr ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-chrome${{matrix.installer-extension}}
242
+ mv -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-firefox${{matrix.installer-extension}}
243
+ rm -r ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-C*
234
244
if : matrix.operating-system == 'windows-latest' || matrix.operating-system == 'macos-latest'
235
245
236
246
# linux
237
247
- name : Launch Bitrock installbuilder-20 with NO_CERT_INSTALL
238
248
run : |
239
- ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env. INSTALLER_VARS } } ${{ env.NO_CERT_INSTALL }}
240
- cp -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-chrome.run
241
- mv -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-firefox.run
242
- cp -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-chrome.tar.gz
243
- mv -v ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/ }-${{ matrix.install-builder-name }}-installer-firefox.tar.gz
249
+ ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.NO_CERT_INSTALL }}
250
+ cp -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-chrome.run
251
+ mv -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-firefox.run
252
+ cp -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-chrome.tar.gz
253
+ mv -v ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${VERSION%.* }-${{ matrix.install-builder-name }}-installer-firefox.tar.gz
244
254
if : matrix.operating-system == 'ubuntu-latest'
245
255
246
256
- name : Upload artifacts
@@ -267,9 +277,15 @@ jobs:
267
277
name : ArduinoCreateAgent-osx
268
278
path : ArduinoCreateAgent-osx
269
279
280
+ # workaround to strip bugfix number from semver (only to make 1.1 release) I will change this in the future
281
+ - name : Set version env vars
282
+ # VERSION will be available only in the next step
283
+ run : |
284
+ echo "VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
285
+
270
286
# zip artifacts do not mantain executable permission
271
287
- name : Make executable
272
- run : chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.app/Contents/MacOS/*
288
+ run : chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.app/Contents/MacOS/*
273
289
274
290
- name : Import Code-Signing Certificates
275
291
env :
@@ -292,15 +308,15 @@ jobs:
292
308
# gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20)
293
309
run : |
294
310
cat > gon.config_installer.hcl <<EOF
295
- source = ["ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.app"]
311
+ source = ["ArduinoCreateAgent-osx/ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.app"]
296
312
bundle_id = "cc.arduino.arduino-agent-installer"
297
313
298
314
sign {
299
315
application_identity = "Developer ID Application: ARDUINO SA (7KT7ZWMCJT)"
300
316
}
301
317
302
318
dmg {
303
- output_path = "ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.dmg"
319
+ output_path = "ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.dmg"
304
320
volume_name = "ArduinoCreateAgent"
305
321
}
306
322
EOF
@@ -310,13 +326,13 @@ jobs:
310
326
AC_USERNAME : ${{ secrets.AC_USERNAME }}
311
327
AC_PASSWORD : ${{ secrets.AC_PASSWORD }}
312
328
run : |
313
- echo "gon will notarize executable in ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.app"
329
+ echo "gon will notarize executable in ArduinoCreateAgent-osx/ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.app"
314
330
gon -log-level=debug -log-json gon.config_installer.hcl
315
331
timeout-minutes : 30
316
332
317
333
# tar dmg file to keep executable permission
318
334
- name : Tar files to keep permissions
319
- run : tar -cvf ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.tar ArduinoCreateAgent-${GITHUB_REF##*/ }-osx-installer-${{ matrix.browser }}.dmg
335
+ run : tar -cvf ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.tar ArduinoCreateAgent-${VERSION%.* }-osx-installer-${{ matrix.browser }}.dmg
320
336
321
337
- name : Upload artifacts
322
338
uses : actions/upload-artifact@v2
@@ -328,19 +344,32 @@ jobs:
328
344
create-release :
329
345
runs-on : ubuntu-latest
330
346
needs : code-sign-mac-installers
347
+ env :
348
+ PLUGIN_TARGET : " /CreateBridgeStable/"
349
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
350
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
331
351
332
352
steps :
333
353
334
354
- name : Download artifact
335
355
uses : actions/download-artifact@v2 # download all the artifacts
336
356
357
+ - name : Identify Prerelease
358
+ # This is a workaround while waiting for create-release action to implement auto pre-release based on tag
359
+ id : prerelease
360
+ run : |
361
+ wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip
362
+ unzip -p /tmp/3.1.0.zip semver-tool-3.1.0/src/semver >/tmp/semver && chmod +x /tmp/semver
363
+ if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi
364
+
337
365
# mandatory step because upload-release-action does not support multiple folders
338
366
- name : prepare artifacts for the release
339
367
run : |
340
368
mkdir release
341
369
chmod -v +x ArduinoCreateAgent-linux-x64/*.run
342
370
mv -v ArduinoCreateAgent-linux-x64/* release/
343
371
cat ArduinoCreateAgent-osx/*.tar | tar -xvf - -i -C release/
372
+ rm -v release/._ArduinoCreateAgent*.dmg
344
373
mv -v ArduinoCreateAgent-windows/* release/
345
374
346
375
- name : Create Github Release
@@ -350,9 +379,9 @@ jobs:
350
379
with :
351
380
tag_name : ${{ github.ref }}
352
381
release_name : ${{ github.ref }}
353
- body : " THIS IS A TEST RELEASE "
382
+ body : " "
354
383
draft : false
355
- prerelease : true # see later how to handle this (maybe just a check on "-dev" will be sufficient)
384
+ prerelease : ${{ steps.prerelease.outputs.IS_PRE }}
356
385
357
386
- name : Upload release files on Github
358
387
uses : svenstaro/upload-release-action@v2
@@ -361,3 +390,7 @@ jobs:
361
390
tag : ${{ github.ref }}
362
391
file_glob : true # If set to true, the file argument can be a glob pattern
363
392
file : release/*
393
+
394
+ - name : Upload release files on Arduino downloads servers
395
+ run : aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.PLUGIN_TARGET }} --include "*"
396
+ if : steps.prerelease.outputs.IS_PRE != 'true'
0 commit comments