Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Don't upload "channel update info files" related to manual builds to S3 on release #2020

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
per1234 merged 1 commit into arduino:main from per1234:skip-channel-file-upload-s3
Apr 19, 2023

Conversation

Copy link
Contributor

@per1234 per1234 commented Apr 18, 2023

Motivation

Arduino IDE offers an update to the user when a newer version is available. The availability of an update is determined by comparing the user's IDE version against data file ("channel update info file") stored on Arduino's download server.

These "channel update info files" are automatically generated by the build workflow.

Previously the release process was fully automated, including the upload of the "channel update info files" to the server.

As a temporary workaround for limitations of the GitHub Actions runner machines used to produce the automated builds, some release builds are now produced manually:

  • Linux build (because the Ubuntu 18.04 runner was shut down and newer runner versions produce builds incompatible with older Linux versions)
  • macOS Apple Silicon build (because GitHub hosted Apple Silicon runners are not available)

The automatic upload of the "channel update info files" produced by the build workflow is problematic because if users receive update offers before the "channel update info files" are updated for the manually produced builds, they can receive an update to a different build than intended:

  • Users of older Linux versions would update to a build that won't start on their machine
  • macOS Apple Silicon users would update to macOS x86 build that is less performant on their machine

Change description

For this reason, the build workflow is adjusted to no longer upload the Linux and macOS "channel update info files" to the download server on release. These files will now be manually uploaded after they have been updated to provide the manually produced builds.

This workaround will be reverted once a fully automated release system is regained.

Other information

I did a test release in my fork using the workflow with the modifications from this PR:

https://github.com/per1234/arduino-ide/actions/runs/4730050364

Since it was a test run, the step that uploads the files to S3 was disabled, but the files that would have been uploaded can be seen in the s3-files workflow artifact:

s3-files.zip/
├── arduino-ide_2.1.0_Linux_64bit.AppImage
├── arduino-ide_2.1.0_Linux_64bit.zip
├── arduino-ide_2.1.0_Windows_64bit.exe*
├── arduino-ide_2.1.0_Windows_64bit.msi
├── arduino-ide_2.1.0_Windows_64bit.zip
├── arduino-ide_2.1.0_macOS_64bit.dmg
├── arduino-ide_2.1.0_macOS_64bit.zip
└── stable.yml

Reviewer checklist

  • PR addresses a single concern.
  • The PR has no duplicates (please search among the Pull Requests before creating one)
  • PR title and description are properly filled.
  • Docs have been added / updated (for bug fixes / features)

...S3 on release
Arduino IDE offers an update to the user when a newer version is available. The availability of an update is determined
by comparing the user's IDE version against data file ("channel update info file") stored on Arduino's download server.
These "channel update info files" are automatically generated by the build workflow.
Previously the release process was fully automated, including the upload of the "channel update info files" to the
server.
As a temporary workaround for limitations of the GitHub Actions runner machines used to produce the automated builds,
some release builds are now produced manually:
- Linux build (because the Ubuntu 18.04 runner was shut down and newer runner versions produce builds incompatible with
 older Linux versions)
- macOS Apple Silicon build (because GitHub hosted Apple Silicon runners are not available)
The automatic upload of the "channel update info files" produced by the build workflow is problematic because if users
receive update offers before the "channel update info files" are updated for the manually produced builds, they can
receive an update to a different build than intended:
- Users of older Linux versions would update to a build that won't start on their machine
- macOS Apple Silicon users would update to macOS x86 build that is less performant on their machine
For this reason, the build workflow is adjusted to no longer upload the Linux and macOS "channel update info files" to
the download server on release. These files will now be manually uploaded after they have been updated to provide the
manually produced builds.
This workaround will be reverted once a fully automated release system is regained.
@per1234 per1234 added type: enhancement Proposed improvement topic: infrastructure Related to project infrastructure labels Apr 18, 2023
@per1234 per1234 self-assigned this Apr 18, 2023
Copy link
Contributor

@kittaakos kittaakos left a comment

Choose a reason for hiding this comment

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

Thank you!

I verified that the modified workflow removes the channel files before the S3 upload. See here.

@per1234 per1234 merged commit 2c74ad6 into arduino:main Apr 19, 2023
@per1234 per1234 deleted the skip-channel-file-upload-s3 branch April 19, 2023 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers
1 more reviewer

@kittaakos kittaakos kittaakos approved these changes

Reviewers whose approvals may not affect merge requirements
Labels
topic: infrastructure Related to project infrastructure type: enhancement Proposed improvement
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /