@@ -139,17 +139,14 @@ env:
139
139
container: |
140
140
null
141
141
job-transfer-artifact-suffix: ARM_64bit
142
- mergeable-channel-file: 'true '
142
+ mergeable-channel-file: 'false '
143
143
artifacts:
144
- - path: '*Linux_arm64.zip'
145
- name: Linux_arm64_zip
146
- - path: '*Linux_arm64.AppImage'
147
- name: Linux_arm64_app_image
144
+ - path: '*ARM_64bit.tar.gz'
145
+ name: ARM_64bit_tarball
148
146
PAID_RUNNER_BUILD_DATA : |
149
147
# This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
150
148
# incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
151
149
# `BASE_BUILD_DATA`, but the system was left in place for future use.
152
-
153
150
jobs :
154
151
run-determination :
155
152
runs-on : ubuntu-latest
@@ -172,9 +169,7 @@ jobs:
172
169
# There is no need to run the other jobs.
173
170
RESULT="false"
174
171
fi
175
-
176
172
echo "result=$RESULT" >> $GITHUB_OUTPUT
177
-
178
173
build-type-determination :
179
174
needs : run-determination
180
175
if : needs.run-determination.outputs.result == 'true'
@@ -211,13 +206,11 @@ jobs:
211
206
is_nightly="false"
212
207
channel_name="nightly"
213
208
fi
214
-
215
209
echo "is-release=$is_release" >> $GITHUB_OUTPUT
216
210
echo "is-nightly=$is_nightly" >> $GITHUB_OUTPUT
217
211
echo "channel-name=$channel_name" >> $GITHUB_OUTPUT
218
212
# Only attempt upload to Amazon S3 if the credentials are available.
219
213
echo "publish-to-s3=${{ secrets.AWS_ROLE_ARN != '' }}" >> $GITHUB_OUTPUT
220
-
221
214
select-targets :
222
215
needs : build-type-determination
223
216
runs-on : ubuntu-latest
@@ -244,7 +237,6 @@ jobs:
244
237
--output-format json \
245
238
'[.[].config]'
246
239
)"
247
-
248
240
artifact_matrix="$(
249
241
(
250
242
echo "${{ env.BASE_BUILD_DATA }}";
@@ -254,43 +246,35 @@ jobs:
254
246
--output-format json \
255
247
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
256
248
)"
257
-
258
249
# The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
259
250
# generated by each must be merged.
260
251
merge_channel_files="true"
261
-
262
252
else
263
253
build_matrix="$(
264
254
echo "${{ env.BASE_BUILD_DATA }}" | \
265
255
yq \
266
256
--output-format json \
267
257
'[.[].config]'
268
258
)"
269
-
270
259
artifact_matrix="$(
271
260
echo "${{ env.BASE_BUILD_DATA }}" | \
272
261
yq \
273
262
--output-format json \
274
263
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
275
264
)"
276
-
277
265
merge_channel_files="false"
278
266
fi
279
-
280
267
# Set workflow step outputs.
281
268
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
282
269
delimiter="$RANDOM"
283
270
echo "build-matrix<<$delimiter" >> $GITHUB_OUTPUT
284
271
echo "$build_matrix" >> $GITHUB_OUTPUT
285
272
echo "$delimiter" >> $GITHUB_OUTPUT
286
-
287
273
delimiter="$RANDOM"
288
274
echo "artifact-matrix<<$delimiter" >> $GITHUB_OUTPUT
289
275
echo "$artifact_matrix" >> $GITHUB_OUTPUT
290
276
echo "$delimiter" >> $GITHUB_OUTPUT
291
-
292
277
echo "merge-channel-files=$merge_channel_files" >> $GITHUB_OUTPUT
293
-
294
278
build :
295
279
name : build (${{ matrix.config.name }})
296
280
needs :
@@ -331,7 +315,6 @@ jobs:
331
315
if : runner.os == 'Windows' && matrix.config.working-directory
332
316
run : |
333
317
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
334
-
335
318
- name : Checkout
336
319
uses : actions/checkout@v4
337
320
@@ -352,7 +335,6 @@ jobs:
352
335
install \
353
336
--global \
354
337
"yarn@${{ env.YARN_VERSION }}"
355
-
356
338
- name : Install Python 3.x
357
339
if : fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
358
340
uses : actions/setup-python@v5
@@ -392,15 +374,12 @@ jobs:
392
374
export CSC_KEY_PASSWORD="${{ secrets[matrix.config.certificate-password-secret] }}"
393
375
export CSC_FOR_PULL_REQUEST=true
394
376
fi
395
-
396
377
npx node-gyp install
397
378
yarn install
398
-
399
379
yarn --cwd arduino-ide-extension build
400
380
yarn --cwd electron-app rebuild
401
381
yarn --cwd electron-app build
402
382
yarn --cwd electron-app package
403
-
404
383
# Both macOS jobs generate a "channel update info file" with same path and name. The second job to complete would
405
384
# overwrite the file generated by the first in the workflow artifact.
406
385
- name : Stage channel file for merge
@@ -414,11 +393,9 @@ jobs:
414
393
mv \
415
394
"${{ env.BUILD_ARTIFACTS_PATH }}/${{ needs.build-type-determination.outputs.channel-name }}-mac.yml" \
416
395
"${staged_channel_files_path}/${{ needs.build-type-determination.outputs.channel-name }}-mac-${{ runner.arch }}.yml"
417
-
418
396
# Set workflow environment variable for use in other steps.
419
397
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
420
398
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
421
-
422
399
- name : Upload staged-for-merge channel file artifact
423
400
uses : actions/upload-artifact@v4
424
401
if : >
@@ -440,7 +417,6 @@ jobs:
440
417
shell : cmd
441
418
run : |
442
419
rmdir /s /q "${{ matrix.config.working-directory }}\${{ env.BUILD_ARTIFACTS_PATH }}"
443
-
444
420
merge-channel-files :
445
421
needs :
446
422
- build-type-determination
@@ -454,7 +430,6 @@ jobs:
454
430
run : |
455
431
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
456
432
echo "CHANNEL_FILES_PATH=${{ runner.temp }}/channel-files" >> "$GITHUB_ENV"
457
-
458
433
- name : Checkout
459
434
uses : actions/checkout@v4
460
435
@@ -493,7 +468,6 @@ jobs:
493
468
run : |
494
469
sudo apt-get update
495
470
sudo apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
496
-
497
471
- name : Install dependencies
498
472
run : yarn
499
473
@@ -503,7 +477,6 @@ jobs:
503
477
./scripts/merge-channel-files.js \
504
478
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
505
479
--input "${{ env.CHANNEL_FILES_PATH }}"
506
-
507
480
- name : Upload merged channel files job transfer artifact
508
481
uses : actions/upload-artifact@v4
509
482
with :
@@ -570,16 +543,13 @@ jobs:
570
543
fi
571
544
fi
572
545
echo -e "$BODY"
573
-
574
546
# Set workflow step output
575
547
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
576
548
DELIMITER="$RANDOM"
577
549
echo "BODY<<$DELIMITER" >> $GITHUB_OUTPUT
578
550
echo "$BODY" >> $GITHUB_OUTPUT
579
551
echo "$DELIMITER" >> $GITHUB_OUTPUT
580
-
581
552
echo "$BODY" > CHANGELOG.txt
582
-
583
553
- name : Upload changelog job transfer artifact
584
554
if : needs.build-type-determination.outputs.is-nightly == 'true'
585
555
uses : actions/upload-artifact@v4
@@ -630,7 +600,6 @@ jobs:
630
600
- name : Publish Nightly [S3]
631
601
run : |
632
602
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide/nightly
633
-
634
603
release :
635
604
needs :
636
605
- build-type-determination
@@ -668,7 +637,6 @@ jobs:
668
637
id : tag_name
669
638
run : |
670
639
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
671
-
672
640
- name : Publish Release [GitHub]
673
641
674
642
with :
@@ -690,7 +658,6 @@ jobs:
690
658
if : needs.build-type-determination.outputs.publish-to-s3 == 'true'
691
659
run : |
692
660
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide
693
-
694
661
clean :
695
662
# This job must run after all jobs that use the transfer artifact.
696
663
needs :
0 commit comments