-
Notifications
You must be signed in to change notification settings - Fork 21
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
Build, test, and promote automation for 3P Packages #220
Build, test, and promote automation for 3P Packages #220
Conversation
Signed-off-by: Mike Chang <changml@amazon.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com> Signed-off-by: Mike Chang <changml@amazon.com>
Signed-off-by: Mike Chang <changml@amazon.com>
name: Build 3P Packages | ||
|
||
on: | ||
pull_request: |
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.
Should we add types: [opened, reopened]
to limit when we trigger this workflow
Also do we want to enable running this on PR from a fork or just supported branches?
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.
We should rebuild on changes, not just when the PR is opened, but good callout to limit builds. I'll see if we can put the build portion behind the github dialog for environments. I'll also see about using the workflow_dispatch
trigger so that someone in a fork can trigger manually.
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.
Actually, this won't retrigger unless package_build_list_host_*.json
is changed. If someone is making a further change to their PR that doesn't involve editing package_build_list_host_*.json
again, but requires rebuild, they can just do a re-run of the build job, since it'll pull from latest
Signed-off-by: Mike Chang <changml@amazon.com>
Signed-off-by: Mike Chang <changml@amazon.com>
112a5c8
to
afd43af
Compare
This implements a modified version of the 3P Package automation RFC: https://github.com/o3de/sig-build/blob/main/rfcs/rfc-bld-20230302-1-3p-development.md
An overview of the workflow (will be captured in a README):
Package create/modify
package_build_list_host_*.json
in a branch/fork and issues a PRbuild-packages.yaml
will trigger on a PR targetingmain
with a change topackage_build_list_host_*.json
3p-package-scripts/o3de_package_scripts/build_package.py --search_path 3p-package-source <name of package>
Package promotion
promote-packages.yaml
will trigger, ifpackage_build_list_host_*.json
is modifiedcmake/3rdParty/Platform/<platform>/BuiltInPackages_<platform>.cmake
within a PR branchTesting done
This was developed in tested in my fork against a real 3P promotion PR for dxc (#211). An example of the workflows below:
Build automation: https://github.com/amzn-changml/3p-package-source/actions/runs/6241586122 (note the downloadable artifacts at the bottom of the screen)
Promotion automation: https://github.com/amzn-changml/3p-package-source/actions/runs/6281273986
Automated PR for O3DE: amzn-changml/o3de#34
Container creation automation (to allow for aarch64 builds with qemu): https://github.com/amzn-changml/3p-package-source/actions/runs/6215325592