146 Commits

Author SHA1 Message Date
Silvano Cerza
0eb2d25570 [skip changelog] Update workflow and script to fetch Arduino CDN download data 2021-09-27 18:07:32 +02:00
per1234
79b075c961 Add CI workflow to synchronize with shared repository labels
On every push that changes relevant files, and periodically, configure the repository's issue and pull request labels
according to the universal, shared, and local label configuration files.
2021-09-24 10:01:57 -07:00
rsora
a46f36acd1 [skip changelog] Add stats workflow to gather downloads data 2021-09-24 18:11:06 +02:00
per1234
2cb9889fe4 Add source URL comment to "Check Certificates" workflow
This will make it easier for the maintainers to sync fixes and improvements in either direction between the upstream
"template" workflow and its installation in this repository.
2021-08-18 03:00:24 -07:00
per1234
bed6e0b741 Use major version ref of Slack notification action
At the time the workflow was written the authors of the `rtCamp/action-slack-notify` GitHub Actions action did not
provide a major version ref. This meant that it was necessary to pin the action to a specific version.

Since then, a few new releases have been made, meaning an outdated version of the action was in use as a consequence of
the pinning.

The action now offers a `v2` major ref. Use of this ref will cause the workflow to benefit from ongoing development to
the action up until such time as a new major release is made, at which time we would need to evaluate whether any changes
to the workflow are required by the breaking change that triggered the major release before updating the major ref
(e.g., `uses: rtCamp/action-slack-notify@v3`).
2021-08-18 03:00:24 -07:00
per1234
302f0109dd Use standardized repository secret name for Slack webhook
The "Check Certificates" workflow is configured to send a notification via Slack if a problem is found with a certificate.
TThis is currently posted to the `team_tooling` channel, but that is not necessarily always going to be the case, and for
every deployment of the workflow. So a less specific secret name is more universally applicable to serve all applications
of this "template" workflow.
2021-08-18 03:00:24 -07:00
per1234
735d3733e2 Make trivial formatting changes to "Check Certificates" workflow
No functional change, and neither is necessarily superior, but this is the formatting style either defined in the
"template", or by the repository's Prettier formatting configuration preferences, so it must be brought into compliance
here as well.
2021-08-18 03:00:24 -07:00
per1234
4b36852f57 Use the matrix identifier to name the "Check Certificates" workflow jobs
When no name is provided for a matrix job, the workflow job is named according to the contents of
`jobs[].<job_id>.strategy.matrix[]`. That can result in some fairly cryptic job names when the matrix contains a complex
data structure as is the case here. We already have a string to uniquely identify each certificate to humans, which is
exactly what the `jobs[].<job_id>.name` property does for jobs, so it will be an improvement to name the jobs according
to that identifier.
2021-08-18 03:00:24 -07:00
per1234
b84b6c921d Make trivial adjustments to comments in "Check Certificates" workflow
No functional difference, and neither is necessarily superior, but this is how it is in the "template", and so it must be
here as well.
2021-08-18 03:00:24 -07:00
per1234
289f07f187 Run "Check Certificates" workflow on modification
This will facilitate testing and review of modifications to the workflow.

Because the workflow requires access to repository secrets, and so will fail whenever triggered by an event from a fork,
a conditional is added to make it only run when the modifications are made within the `arduino/arduino-ide`
repository.
2021-08-18 03:00:24 -07:00
per1234
b9c777a5c3 Add API trigger to "Check Certificates" workflow
The `repository_dispatch` event allows triggering workflows via the GitHub API. This might be useful for triggering an
immediate check in multiple relevant repositories after an external change, or some automated process. Although we don't
have any specific need for this event at the moment, the event has no impact on the workflow, so there is no reason
against having it. It is the sort of thing that can end up being useful if it is already in consistently in place, but
not worth setting up on demand, since the effort to set it up is greater than the effort to trigger all the workflows
manually.
2021-08-18 03:00:24 -07:00
per1234
92af4bef26 Use standardized name for certificate check workflow
This is the naming convention established in the standardized "template" workflow.
2021-08-18 03:00:24 -07:00
Akos Kitta
ab320eb0b0 GH-259: Use Ubuntu 18.04 for the build job.
Closes #259

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2021-03-29 12:39:46 +02:00
per1234
3fb087f1ad Delete job transfer workflow artifact
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.
2021-03-24 02:04:11 -07:00
per1234
27292774d7 Create separate tester artifacts for each build
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.
2021-03-24 02:04:11 -07:00
per1234
da424f34cc Don't use magic string for job transfer artifact name
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.
2021-03-24 02:04:11 -07:00
rsora
ef03d3f583 Disable code signing when workflows run from forks
- 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
2021-03-15 16:01:37 +01:00
per1234
561d5fbbd3 Update label names in issue templates
This repositories label names have been customized. The label names defined in the templates will automatically be added
to issues created using that template, so the template labels must match with the repository's labeling convention.
2021-02-24 20:09:32 -08:00
per1234
754097877b Make the example values in the bug report template more relevant
The bug report template provides some example values for OS and version. The previous examples were completely
irrelevant to this project due to using an unsupported OS and a different versioning scheme. This might cause confusion,
or at least seem odd, to the contributor.
2021-02-11 23:21:57 -08:00
per1234
b847cff615 Add issue templates
At the first step of creating an issue, a menu of issue types will be presented:

- Bug report
- Feature request
- Report a security vulnerability

If one of the first two are selected, the issue body field will be pre-filled with the template Markdown.

"Report a security vulnerability" will take them to Arduino's global security disclosure policy, which provides further guidance.

If none of the categories in the issue type chooser are applicable, the "Open a blank issue." link at the bottom of the
page can be selected, which will provide the non-templated issue creation experience.

These templates are copies of https://github.com/arduino/arduino-pro-ide/tree/master/.github/ISSUE_TEMPLATE
2021-02-11 23:21:57 -08:00
Akos Kitta
b3deb2fd34 Aligned workflow/docs with the default branch name
This is required after switching the default from `master` to `main`.

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2021-02-11 15:12:23 +01:00
Akos Kitta
b8647f16ad Renamed the application. Updated links and version
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2021-02-11 09:59:46 +01:00
Akos Kitta
291179489f Reenabled the nightly build.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2021-02-03 18:33:44 +01:00
Akos Kitta
8eaf03a299 Fixed the app packager on Windows.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2021-02-03 17:44:36 +01:00
Akos Kitta
1b6d9eccdc Disabled the CRON (nightly build) job.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-12-17 17:32:51 +01:00
Akos Kitta
3191a09562 [ci]: Fixed the GH release action.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-12-10 20:15:40 +01:00
Akos Kitta
41eeb337f9 ATL-675: Use the upstream GH Action for the upload
Ref: svenstaro/upload-release-action#25
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-11-17 08:26:52 +01:00
per1234
c78e474790 Fix certificate check CI workflow's crontab
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.
2020-10-26 02:39:14 -07:00
per1234
53b06aef67 Add workflow to check for problems with certificates
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.
2020-10-22 07:59:49 -07:00
per1234
6ff58ebe7c Use the windows-latest runner in the Arduino Pro IDE workflow
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.
2020-10-20 14:19:04 -07:00
per1234
7068b9b1d3 Add signed Windows installer package to the "Arduino Pro IDE" workflow
The previous "zip" Windows package is retained, but an installer is also produced.
2020-10-20 14:19:04 -07:00
Akos Kitta
f26dae185b ATL-222: Moved the language feature to a VS Code extension.
Updated to next Theia: 1.6.0-next.b43a1623.

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-10-12 16:28:07 +02:00
Akos Kitta
525e688d70 Use git log as of the body for the GH release.
There is no need to prepend any other info to the release body.

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-09-04 13:12:41 +02:00
Akos Kitta
d7f4d0c18e Fixed the tag name of the GH releases.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-09-04 13:12:41 +02:00
Akos Kitta
6ae7404092 ATL-439: Create the GH release in the public repo.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-09-02 21:05:46 +02:00
Akos Kitta
6b1b9c0524 Use docker://plugins/s3 action for the S3 upload
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-09-02 21:05:46 +02:00
Akos Kitta
717db95c90 ATL-424: Generate a changelog for the nightlies.
Configure generated changelog output from `changelog` job so it can be used in the `release` job of the workflow

It is necessary to define job outputs to make them accessible via the `needs` context in other jobs.

Reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idneeds

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-09-02 21:05:46 +02:00
Akos Kitta
7536c3a485 ATL-423: Can execute the nightly manually.
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>
2020-09-02 21:05:46 +02:00
Akos Kitta
82a3b01c0b increased the timeout to 90.
notarization can run more than expected, we rely on Apple services.

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-08-19 12:14:19 +02:00
per1234
fd2b03e286 Use GitHub hosted macOS GitHub Actions runner instead of self hosted runner
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.
2020-08-17 09:22:39 -07:00
per1234
ce58590c0e Use electron-builder to import macOS signing certificate
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.
2020-08-17 09:22:39 -07:00
Akos Kitta
0942ef6450 Switched from grpc to @grpc/grpc-js.
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>
2020-07-13 13:30:06 +02:00
Akos Kitta
8e8a8ac945 Fixed the expected tag prefix.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-07-09 10:23:02 +02:00
Akos Kitta
45f06718b4 Updated the documentation.
- [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>
2020-07-08 14:21:06 +02:00
Akos Kitta
5a353ffaa5 Made the upload and release depend on the build job.
- 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>
2020-07-07 15:17:01 +02:00
Akos Kitta
6bb852c613 Build on GH Actions. Set up nightly.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
2020-07-03 14:26:17 +02:00