-
Notifications
You must be signed in to change notification settings - Fork 238
Autobuild: Refactor and add dependency pinning #2345
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
Autobuild: Refactor and add dependency pinning #2345
Conversation
The reason for using 'sh' instead of invoking the scripts directly seems to have been that the exec bit on the *prepare*.sh files had been missing. 408b985 fixed this already. Using bash consistently avoids unexpected issues due to usage of bash best-practices in non-bash environments. All those scripts run on Ubuntu or Mac where bash is available, so there's no need to artificially limit the usable language features.
The Android autobuild scripts contained a whole directory of archived code. The name suggests that it is unused. The repository does not contain any references to this directory either. Therefore remove it. Furthermore, the actively used scripts contained commented out code from the apparent conversion from a Dockerfile to bash scripts. It also contained references to older versions. This commit removes those instances of disabled code. Should we ever need it again, git has all the history.
Cleaning up unnecessary files such as the apt cache is important when building docker images. When running on Github Actions we shouldn't care about it as the whole runtime environment is destroyed more efficiently after each run. `apt` usage can also be condensed into a single call to reduce the (likely very minimal) startup overhead.
ef6cd92 to
fd970e8
Compare
fd970e8 to
e73a4de
Compare
|
Oh
|
This refactors several autobuild scripts to avoid repeated hardcoding of versions or paths.
This ensures that we always install specific versions of aqt and JACK. This helps with build reproducibility. It's also a requirement to be able to cache parts of the build environment.
e73a4de to
1113213
Compare
Heh, reverted back to ../latest/ (but kept the other improvements). |
softins
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good, and CI happy.
pljones
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Short description of changes
This PR refactors the autobuild logic and introduces version pinning of external dependencies:
Pinning has partly been implemented already (Qt, NSIS, ASIOSDK, Android Command Line Tools, Android NDK, Android SDK). In addition, this PR introduces version pinning for JACK and aqtinstaller.
Context: Fixes an issue?
This is the basis for #2284 (for 3.9.0). The goal is to merge this for 3.8.2.
Does this change need documentation? What needs to be documented and how?
CHANGELOG: Internal: Release build process has been refactored and uses pinned dependencies for better reproducibility now.
Status of this Pull Request
Ready.
What is missing until this pull request can be merged?
Checklist