15
15
16
16
env :
17
17
JOB_TRANSFER_ARTIFACT : build-artifacts
18
+ CHANGELOG_ARTIFACTS : changelog
18
19
19
20
jobs :
20
-
21
21
build :
22
22
if : github.repository == 'arduino/arduino-ide'
23
23
strategy :
@@ -56,29 +56,29 @@ jobs:
56
56
IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/') }}
57
57
IS_FORK : ${{ github.event.pull_request.head.repo.fork == true }}
58
58
run : |
59
- # See: https://www.electron.build/code-signing
60
- if [ $IS_FORK = true ]; then
61
- echo "Skipping the app signing: building from a fork."
62
- else
63
- if [ "${{ runner.OS }}" = "macOS" ]; then
64
- export CSC_LINK="${{ runner.temp }}/signing_certificate.p12"
65
- # APPLE_SIGNING_CERTIFICATE_P12 secret was produced by following the procedure from:
66
- # https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/#exporting-the-developer-certificate
67
- echo "${{ secrets.APPLE_SIGNING_CERTIFICATE_P12 }}" | base64 --decode > "$CSC_LINK"
59
+ # See: https://www.electron.build/code-signing
60
+ if [ $IS_FORK = true ]; then
61
+ echo "Skipping the app signing: building from a fork."
62
+ else
63
+ if [ "${{ runner.OS }}" = "macOS" ]; then
64
+ export CSC_LINK="${{ runner.temp }}/signing_certificate.p12"
65
+ # APPLE_SIGNING_CERTIFICATE_P12 secret was produced by following the procedure from:
66
+ # https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/#exporting-the-developer-certificate
67
+ echo "${{ secrets.APPLE_SIGNING_CERTIFICATE_P12 }}" | base64 --decode > "$CSC_LINK"
68
68
69
- export CSC_KEY_PASSWORD="${{ secrets.KEYCHAIN_PASSWORD }}"
69
+ export CSC_KEY_PASSWORD="${{ secrets.KEYCHAIN_PASSWORD }}"
70
70
71
- elif [ "${{ runner.OS }}" = "Windows" ]; then
72
- export CSC_LINK="${{ runner.temp }}/signing_certificate.pfx"
73
- npm config set msvs_version 2017 --global
74
- echo "${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PFX }}" | base64 --decode > "$CSC_LINK"
71
+ elif [ "${{ runner.OS }}" = "Windows" ]; then
72
+ export CSC_LINK="${{ runner.temp }}/signing_certificate.pfx"
73
+ npm config set msvs_version 2017 --global
74
+ echo "${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PFX }}" | base64 --decode > "$CSC_LINK"
75
75
76
- export CSC_KEY_PASSWORD="${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PASSWORD }}"
77
- fi
76
+ export CSC_KEY_PASSWORD="${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PASSWORD }}"
78
77
fi
78
+ fi
79
79
80
- yarn --cwd ./electron/packager/
81
- yarn --cwd ./electron/packager/ package
80
+ yarn --cwd ./electron/packager/
81
+ yarn --cwd ./electron/packager/ package
82
82
83
83
- name : Upload [GitHub Actions]
84
84
uses : actions/upload-artifact@v2
@@ -95,15 +95,15 @@ jobs:
95
95
strategy :
96
96
matrix :
97
97
artifact :
98
- - path : " *Linux_64bit.zip"
98
+ - path : ' *Linux_64bit.zip'
99
99
name : Linux_X86-64
100
- - path : " *macOS_64bit.dmg"
100
+ - path : ' *macOS_64bit.dmg'
101
101
name : macOS
102
- - path : " *Windows_64bit.exe"
102
+ - path : ' *Windows_64bit.exe'
103
103
name : Windows_X86-64_interactive_installer
104
- - path : " *Windows_64bit.msi"
104
+ - path : ' *Windows_64bit.msi'
105
105
name : Windows_X86-64_MSI
106
- - path : " *Windows_64bit.zip"
106
+ - path : ' *Windows_64bit.zip'
107
107
name : Windows_X86-64_zip
108
108
109
109
steps :
@@ -112,7 +112,7 @@ jobs:
112
112
with :
113
113
name : ${{ env.JOB_TRANSFER_ARTIFACT }}
114
114
path : ${{ env.JOB_TRANSFER_ARTIFACT }}
115
-
115
+
116
116
- name : Upload tester build artifact
117
117
uses : actions/upload-artifact@v2
118
118
with :
@@ -135,24 +135,24 @@ jobs:
135
135
env :
136
136
IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/') }}
137
137
run : |
138
- export LATEST_TAG=$(git describe --abbrev=0)
139
- export GIT_LOG=$(git log --pretty=" - %s [%h]" $LATEST_TAG..HEAD | sed 's/ *$//g')
140
- if [ "$IS_RELEASE" = true ]; then
141
- export BODY=$(echo -e "$GIT_LOG")
142
- else
143
- export LATEST_TAG_WITH_LINK=$(echo "[$LATEST_TAG](https://github.com/arduino/arduino-ide/releases/tag/$LATEST_TAG)")
144
- if [ -z "$GIT_LOG" ]; then
145
- export BODY="There were no changes since version $LATEST_TAG_WITH_LINK."
146
- else
147
- export BODY=$(echo -e "Changes since version $LATEST_TAG_WITH_LINK:\n$GIT_LOG")
148
- fi
138
+ export LATEST_TAG=$(git describe --abbrev=0)
139
+ export GIT_LOG=$(git log --pretty=" - %s [%h]" $LATEST_TAG..HEAD | sed 's/ *$//g')
140
+ if [ "$IS_RELEASE" = true ]; then
141
+ export BODY=$(echo -e "$GIT_LOG")
142
+ else
143
+ export LATEST_TAG_WITH_LINK=$(echo "[$LATEST_TAG](https://github.com/arduino/arduino-ide/releases/tag/$LATEST_TAG)")
144
+ if [ -z "$GIT_LOG" ]; then
145
+ export BODY="There were no changes since version $LATEST_TAG_WITH_LINK."
146
+ else
147
+ export BODY=$(echo -e "Changes since version $LATEST_TAG_WITH_LINK:\n$GIT_LOG")
149
148
fi
150
- echo -e "$BODY"
151
- OUTPUT_SAFE_BODY="${BODY//'%'/'%25'}"
152
- OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\n'/'%0A'}"
153
- OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\r'/'%0D'}"
154
- echo "::set-output name=BODY::$OUTPUT_SAFE_BODY"
155
- echo "$BODY" > CHANGELOG.txt
149
+ fi
150
+ echo -e "$BODY"
151
+ OUTPUT_SAFE_BODY="${BODY//'%'/'%25'}"
152
+ OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\n'/'%0A'}"
153
+ OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\r'/'%0D'}"
154
+ echo "::set-output name=BODY::$OUTPUT_SAFE_BODY"
155
+ echo "$BODY" > CHANGELOG.txt
156
156
157
157
- name : Upload Changelog [GitHub Actions]
158
158
if : github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main')
@@ -175,9 +175,9 @@ jobs:
175
175
- name : Publish Nightly [S3]
176
176
uses : docker://plugins/s3
177
177
env :
178
- PLUGIN_SOURCE : " ${{ env.JOB_TRANSFER_ARTIFACT }}/*"
179
- PLUGIN_STRIP_PREFIX : " ${{ env.JOB_TRANSFER_ARTIFACT }}/"
180
- PLUGIN_TARGET : " /arduino-ide/nightly"
178
+ PLUGIN_SOURCE : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/*'
179
+ PLUGIN_STRIP_PREFIX : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/'
180
+ PLUGIN_TARGET : ' /arduino-ide/nightly'
181
181
PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
182
182
AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
183
183
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -198,6 +198,20 @@ jobs:
198
198
run : |
199
199
echo ::set-output name=TAG_NAME::${GITHUB_REF#refs/tags/}
200
200
201
+ - name : Create full changelog
202
+ id : full-changelog
203
+ run : |
204
+ mkdir "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}"
205
+
206
+ # Get the changelog file name to build
207
+ CHANGELOG_FILE_NAME="${{ steps.tag_name.outputs.TAG_NAME }}-${date --iso-8601=s}.md"
208
+
209
+ # Create manifest file pointing to latest changelog file name
210
+ echo "$CHANGELOG_FILE_NAME" >> "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}/latest.txt"
211
+
212
+ # Compose changelog
213
+ yarn run compose-changelog "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}/$CHANGELOG_FILE_NAME"
214
+
201
215
- name : Publish Release [GitHub]
202
216
uses : svenstaro/upload-release-action@2.2.0
203
217
with :
@@ -208,12 +222,22 @@ jobs:
208
222
file_glob : true
209
223
body : ${{ needs.changelog.outputs.BODY }}
210
224
225
+ - name : Publish Changelog [S3]
226
+ uses : docker://plugins/s3
227
+ env :
228
+ PLUGIN_SOURCE : ' ${{ env.CHANGELOG_ARTIFACTS }}/*'
229
+ PLUGIN_STRIP_PREFIX : ' ${{ env.CHANGELOG_ARTIFACTS }}/'
230
+ PLUGIN_TARGET : ' /arduino-ide/changelog'
231
+ PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
232
+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
233
+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
234
+
211
235
- name : Publish Release [S3]
212
236
uses : docker://plugins/s3
213
237
env :
214
- PLUGIN_SOURCE : " ${{ env.JOB_TRANSFER_ARTIFACT }}/*"
215
- PLUGIN_STRIP_PREFIX : " ${{ env.JOB_TRANSFER_ARTIFACT }}/"
216
- PLUGIN_TARGET : " /arduino-ide"
238
+ PLUGIN_SOURCE : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/*'
239
+ PLUGIN_STRIP_PREFIX : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/'
240
+ PLUGIN_TARGET : ' /arduino-ide'
217
241
PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
218
242
AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
219
243
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
0 commit comments