The "Arduino IDE" GitHub Actions workflow uses a workflow artifact to transfer the build artifacts between jobs. Now that
separate tester build artifacts are produced, the monolithic job transfer artifact is superfluous once the workflow run
is finished. Deleting it avoids potential confusion for beta testers and unnecessary storage space usage.
Previously, a single workflow artifact was created by the "Arduino IDE" GitHub Actions workflow. This artifact contained
the builds for each operating system, including all three versions of the Windows build. This resulted in beta testers
needing to do a >1 GB download for every build, even though they likely needed only ~200 MB of what they downloaded.
Producing separate workflows makes it easier for beta testers to participate in the development and is less wasteful of
resources.
Previously, the build CI/CD workflow had many occurrences of the string "build-artifacts" used for the workflow artifact
name. This made the workflow more difficult to understand and maintain. Now a single workflow scoped environment variable
is used to define the artifact name.
- Skip Mac/Win code signing and Apple notarization only if PR comes from a fork
- Disable workflows entirely if the user enabled Github Actions in
their fork repo
- Add steps to help Mac users to test their forked code in BUILDING.md
An error in the crontab configuration resulted in the `schedule` event triggered workflow running every 6-9 minutes (the minimum interval GitHub Actions provides) for the duration of every tenth hour.
The updated crontab causes the workflow to run once every 10 hours, as intended.
If the macOS or Windows signing certificates fail verification, a notification will be posted on the #team_tooling Slack channel.
If the certificates expire in less than 30 days, a notification will be posted on the #team_tooling Slack channel.
It was previously required to use the `windows-2016` runner to build Arduino Pro IDE. That is no longer necessary and
Windows signing fails when using that runner.
We consider a build as nightly, if was started by the
CRON job, or was manually triggered from the master
branch.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
The self hosted runner was used because the electron-builder signing process was hanging when the workflow was run on the GitHub hosted macOS runner. Now that the electron-builder signing certificate import procedure can be used, the GitHub hosted runner can be used without any problems so there is no longer any need for a self hosted runner.
The previous certificate import system causes electron-builder's code signing process to hang when the GitHub hosted macOS runner is used.
electron-builder has a built-in system for importing the code signing certificate into the keychain. This requires the certificate to have been exported using a specific procedure, which is described vaguely in the electron-builder documentation:
https://www.electron.build/code-signing
And more thoroughly in this article:
https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/#exporting-the-developer-certificate
The "KEYCHAIN" secret that was previously in use was apparently produced by some other procedure. The use of that secret results in a "security: SecKeychainItemImport: Unknown format in import." error during the electron-builder's certificate import process. The APPLE_SIGNING_CERTIFICATE_P12 secret was generated by following the instructions in the article at the link above and works fine with the electron-builder certificate import system.
This change is required to be able to support ARM arch
in the future.
- Fixed the download links for armv7l Linux.
- Checked in the generated code. [grpc/grpc-node#1497]
- Made the code generation a manual step.
- Made the `grpc-tools` dependency optional.
- From now on, the serial port regex is case-insensitive.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
- [macOS] Removed `zip` target. We need it later for the auto-update.
- [CI]: From now on, the release tag must not start with `v`.
- [yarn]: Added steps on how to rebuild the natives from the source.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
- Split up the pipeline to build, publish, and release.
- Set a 30 minutes build timeout, to avoid macOS signing issues.
- Removed global envs. `env` cannot be accessed for `if` in jobs.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>