-
Notifications
You must be signed in to change notification settings - Fork 546
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
Toolkit: provide mechanism to auto-install build deps when building on azl #11081
base: 3.0-dev
Are you sure you want to change the base?
Toolkit: provide mechanism to auto-install build deps when building on azl #11081
Conversation
@@ -0,0 +1,119 @@ | |||
#!/bin/bash |
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.
This script seems overly complicated.
Would it make sense to have install-prerequisites-ubuntu.sh
and install-prerequisites-mariner.sh
scripts and then just have the Markdown reference those 2 scripts? That way, we still have a single source of truth but with significantly fewer lines of code.
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.
The "real" install has some extra stuff I really don't want to deal with... this is for use with pipelines first and foremost. I'd be open to just removing the makefile target completly and having the pipeline call the script directly.
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.
approved with minor comments
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-static
subpackages, etc.) have had theirRelease
tag incremented../cgmanifest.json
,./toolkit/scripts/toolchain/cgmanifest.json
,.github/workflows/cgmanifest.json
)./LICENSES-AND-NOTICES/SPECS/data/licenses.json
,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md
,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON
)*.signatures.json
filessudo make go-tidy-all
andsudo make go-test-coverage
passSummary
As part of a new test pipeline, it is necessary to install build dependencies for the toolkit. Instead of relying on a hard-coded list of packages that will get out-of-date, provide a mechanism to automatically install build dependencies when building on azl (ubuntu is possible, but would require more than just running
tdnf -y install...
).To this end, add a canonical source of truth for requirements (
prerequisites-src.json
). This is validated against changes in our documentation with a github action. The requirements change so rarely I don't believe its worth the complexity of automating this processes, detection and alerting should be sufficient.A user may then call
sudo make install-azurelinux-prereqs
to automatically install all the required*.rpms
.I believe we should not use this in our general documentation, better to leave the users to decide how they want to manage their own systems, but it is very useful for pipelines.
We should consider this for back-port to 2.0 so that our suggested pipeline workflows that partner teams may use can take advantage of it, but this is not critical.
Change Log
prerequisites-src.json
prerequisites.sh
which can both print out prereqs, and validate the*.md
files which are user facing.Prerequisites Check
GitHub action to detect inconsistencies in the prerequisite readme.install-azurelinux-prereqs
build target which leveragesprerequisites.sh
to install the required packagesDoes this affect the toolchain?
NO
Associated issues
Test Methodology