arduino-cli
arduino-cli copied to clipboard
[skip-changelog]Use a matrix to create parallel builds for each OS
Please check if the PR fulfills these requirements
- [x] The PR has no duplicates (please search among the Pull Requests before creating one)
- [x] The PR follows our contributing guidelines
- [ ] Tests for the changes have been added (for bug fixes / features)
- [ ] Docs have been added / updated (for bug fixes / features)
- [ ]
UPGRADING.md
has been updated with a migration guide (for breaking changes)
What kind of change does this PR introduce?
Infrastructure Enhancement
What is the current behavior?
Release-go-task is currently using task dist:all
to build and create the release artifacts. This is done by calling the tasks related to each OS consecutively. As a result, the finishing time of task dist:all
is the sum of the finishing times of each individual dist
.
What is the new behavior?
Using a matrix to run each build task greatly improves performance, since they can all start concurrently. The finishing time of the job will be equal to the one of the longer task to build, instead of being the sum of each individual task's finishing time.
Does this PR introduce a breaking change, and is titled accordingly?
No
Other information:
Test workflow run: https://github.com/MatteoPologruto/arduino-cli/actions/runs/3083679431 Test release: https://github.com/MatteoPologruto/arduino-cli/releases/tag/0.0.0
Also it does not make sense to perform the changelog generation in all the jobs.. could be an idea to do it only for one of the runs
I've just noticed an unrelated problem with the release CI: https://github.com/arduino/arduino-cli/blob/a3f6574ab09d19070defadb3be91e5c46fc916b1/DistTasks.yml#L214
This should be:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_64"
It's worth to fix it in this PR IMHO.
More context here