Skip to content

Update release workflows using parallelization #277

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Oct 14, 2022

Conversation

MatteoPologruto
Copy link
Contributor

Updates:

  • release-go-task, publish-go-nigthly-task and publish-go-tester-task now use a matrix to run build tasks simultaneously instead of running them sequencially with dist:all. This also allows to directly upload a different artifact for each build in publish-go-tester-task.
  • Checksums are calculated in the release creation job only.
  • DistTasks no longer has a dist:all task.

This changes were originally introduced with PR 1883 in the arduino-cli repository.

@MatteoPologruto MatteoPologruto added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure labels Oct 11, 2022
@MatteoPologruto MatteoPologruto self-assigned this Oct 11, 2022
@MatteoPologruto MatteoPologruto marked this pull request as ready for review October 11, 2022 14:19
@MatteoPologruto MatteoPologruto force-pushed the parallel-dist branch 3 times, most recently from d92b352 to d1b4565 Compare October 13, 2022 15:23
@MatteoPologruto
Copy link
Contributor Author

MatteoPologruto commented Oct 13, 2022

Thanks for the suggestions @per1234! Here is a workflow run in which I tested the changes made to publish-go-tester-test: https://github.com/MatteoPologruto/arduino-cli/actions/runs/3243497130
Let me know if there is something else that needs to be modified.

Copy link
Contributor

@per1234 per1234 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work. Thanks Matteo!

Introducing the use of a matrix, greatly improves time performances during the build making process, since each build task is performed simultaneously. To support this, a check has been added to avoid
creating the same changelog more than once.
The calculation of the checksums has also been modified. Previously, it was done three (3) times at different stages of the workflow. This is pointless, since the only checksums that matter are the ones
calculated when the files are in their final form. For this reason, it is now only done once during the release creation.
Introducing the use of a matrix, greatly improves time performances during the build making process, since each build task is performed simultaneously.
The calculation of the checksums has also been modified. Previously, it was done three (3) times at different stages of the workflow. This is pointless, since the only checksums that matter are the ones
calculated when the files are in their final form. For this reason, it is now only done once during the release creation.
Introducing the use of a matrix, greatly improves time performances during the build making process, since each build task is performed simultaneously. Furthermore, it allows to directly upload a different
artifact for each build. To complete this set of changes, a separate job to calculate the checksums and upload the relative artifact has been added to the workflow.
@MatteoPologruto MatteoPologruto merged commit 8ea1f4c into arduino:main Oct 14, 2022
@MatteoPologruto MatteoPologruto deleted the parallel-dist branch October 14, 2022 10:50
@per1234 per1234 added topic: code Related to content of the project itself and removed topic: infrastructure Related to project infrastructure labels Oct 26, 2022
echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
echo "::set-output name=checksum-${{ matrix.artifact.name }}::$CHECKSUM_LINE"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: code Related to content of the project itself type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants