5
5
tags :
6
6
- " [0-9]+.[0-9]+.[0-9]+*"
7
7
8
+ env :
9
+ TARGET : " /CreateAgent/"
10
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
11
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
12
+ AWS_REGION : " us-east-1" # or https://github.com/aws/aws-cli/issues/5623
13
+ KEYCHAIN : " sign.keychain"
14
+ INSTALLER_CERT_MAC_PATH : " /tmp/ArduinoCerts2020.p12"
15
+ AC_USERNAME : ${{ secrets.AC_USERNAME }} # used by gon
16
+ AC_PASSWORD : ${{ secrets.AC_PASSWORD }} # used by gon
17
+
8
18
jobs :
9
19
# The build job is responsible for: configuring the environment, testing and compiling process
10
20
build :
@@ -14,16 +24,31 @@ jobs:
14
24
- operating-system : ubuntu-18.04
15
25
- operating-system : windows-2019
16
26
arch : -386
27
+ ext : " .exe"
17
28
- operating-system : windows-2019
18
29
arch : -amd64
30
+ ext : " .exe"
19
31
- operating-system : macos-10.15
20
32
33
+ defaults :
34
+ run :
35
+ shell : bash
36
+
21
37
runs-on : ${{ matrix.operating-system }}
22
38
23
39
steps :
24
- - name : Set version
25
- run : echo "TAG_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
26
- shell : bash
40
+ - name : Set env vars
41
+ run : |
42
+ echo "TAG_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
43
+ echo $(go env GOPATH)/bin >> $GITHUB_PATH
44
+
45
+ - name : Identify Prerelease
46
+ # This is a workaround while waiting for create-release action to implement auto pre-release based on tag
47
+ id : prerelease
48
+ run : |
49
+ curl -L -s https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip -o /tmp/3.1.0.zip
50
+ unzip -p /tmp/3.1.0.zip semver-tool-3.1.0/src/semver >/tmp/semver && chmod +x /tmp/semver
51
+ if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi
27
52
28
53
- name : Disable EOL conversions
29
54
run : git config --global core.autocrlf false
48
73
run : |
49
74
go get github.com/golangci/govet
50
75
go get golang.org/x/lint/golint
51
- shell : bash
76
+ go get -u github.com/sanbornm/go-selfupdate/...
52
77
53
78
- name : Install Taskfile
54
79
uses : arduino/actions/setup-taskfile@master
@@ -97,6 +122,19 @@ jobs:
97
122
run : task build
98
123
if : matrix.operating-system == 'macos-10.15'
99
124
125
+ # this will create `public/` dir with compressed full bin (<version>/<os>-<arch>.gz) and a json file
126
+ - name : Create autoupdate files
127
+ run : go-selfupdate arduino-create-agent${{ matrix.ext }} ${TAG_VERSION}
128
+ if : matrix.arch != '-386' && steps.prerelease.outputs.IS_PRE != 'true'
129
+
130
+ - name : Create autoupdate files for win32
131
+ run : go-selfupdate -platform windows${{ matrix.arch }} arduino-create-agent${{ matrix.ext }} ${TAG_VERSION}
132
+ if : matrix.arch == '-386' && steps.prerelease.outputs.IS_PRE != 'true'
133
+
134
+ - name : Upload autoupdate files to Arduino downloads servers
135
+ run : aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}
136
+ if : steps.prerelease.outputs.IS_PRE != 'true'
137
+
100
138
# config.ini is required by the executable when it's run
101
139
- name : Upload artifacts
102
140
uses : actions/upload-artifact@v2
@@ -122,9 +160,6 @@ jobs:
122
160
path : arduino-create-agent-${{ env.RUNS_ON }}
123
161
124
162
- name : Import Code-Signing Certificates
125
- env :
126
- KEYCHAIN : " sign.keychain"
127
- INSTALLER_CERT_MAC_PATH : " /tmp/ArduinoCerts2020.p12"
128
163
run : |
129
164
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
130
165
security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
@@ -155,9 +190,6 @@ jobs:
155
190
EOF
156
191
157
192
- name : Code sign and notarize app
158
- env :
159
- AC_USERNAME : ${{ secrets.AC_USERNAME }}
160
- AC_PASSWORD : ${{ secrets.AC_PASSWORD }}
161
193
run : |
162
194
echo "gon will notarize executable in arduino-create-agent-${{ env.RUNS_ON }}/arduino-create-agent"
163
195
gon -log-level=debug -log-json gon.config.hcl
@@ -308,9 +340,6 @@ jobs:
308
340
run : chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-installer-${{ matrix.browser }}.app/Contents/MacOS/*
309
341
310
342
- name : Import Code-Signing Certificates
311
- env :
312
- KEYCHAIN : " sign.keychain"
313
- INSTALLER_CERT_MAC_PATH : " /tmp/ArduinoCerts2020.p12"
314
343
run : |
315
344
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }}
316
345
security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }}
@@ -342,9 +371,6 @@ jobs:
342
371
EOF
343
372
344
373
- name : Code sign and notarize app
345
- env :
346
- AC_USERNAME : ${{ secrets.AC_USERNAME }}
347
- AC_PASSWORD : ${{ secrets.AC_PASSWORD }}
348
374
run : |
349
375
echo "gon will notarize executable in ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-installer-${{ matrix.browser }}.app"
350
376
gon -log-level=debug -log-json gon.config_installer.hcl
@@ -364,10 +390,6 @@ jobs:
364
390
create-release :
365
391
runs-on : ubuntu-18.04
366
392
needs : code-sign-mac-installers
367
- env :
368
- TARGET : " /CreateBridgeStable/"
369
- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
370
- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
371
393
372
394
steps :
373
395
- name : Download artifact
@@ -377,7 +399,7 @@ jobs:
377
399
# This is a workaround while waiting for create-release action to implement auto pre-release based on tag
378
400
id : prerelease
379
401
run : |
380
- wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip
402
+ curl -L -s https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip -o /tmp /3.1.0.zip
381
403
unzip -p /tmp/3.1.0.zip semver-tool-3.1.0/src/semver >/tmp/semver && chmod +x /tmp/semver
382
404
if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi
383
405
0 commit comments