add GHA build script for x64, arm64
Fixes #12319
Proposed changes
Add build workflow using GitHub Actions, building and generating GE distribution files for both x64 and arm64 platforms.
This workflow script is automatically run when a PR is submitted, or when a push commit is made to the repo, and can also be manually invoked with parameters using the Actions UI like
Test methodology
The script contains a test step to run the current test suite in the repo, when invoked.
Currently the test suite has some failed test cases when run in the GitHub runner environment for x64 platform. For the arm64 runner environment, the test suite hangs at the end and never finishes, resulting in timeout at the test step. These failures need be looked at by the development team, with possible modifications (if any) to the script.
Test environment(s)
GitHub Actions runner environments, for both x64 and arm64 platforms.
Merge strategy
I agree that the maintainer squash merge this PR (if the commit message is clear).
:black_nib: I contribute this code under The Developer Certificate of Origin.
This is a good start, thank you for sharing.
To make this our default CI/CD we'll need to complete the following items:
- have all tests pass on both legs
- provide good test result experience (e.g., something like https://github.com/dotnet/aspire/actions/runs/18642665923; I'm pretty certain we can borrow ideas/implementations --> I think this is it: https://github.com/dotnet/aspire/tree/main/tools/GenerateTestSummary)
- setup an integration with SignPath (https://github.com/SignPath/github-actions)
provide good test result experience
as said, better than on first quick look
(The test output can also be seen as "Annotations" of the build.)
What might be missing in addition, is build / test progress and access to the VM in case of hanging tests, f.i. in case of "unhandled exception" popups.
- provide good test result experience (e.g., something like https://github.com/dotnet/aspire/actions/runs/18642665923; I'm pretty certain we can borrow ideas/implementations --> I think this is it: https://github.com/dotnet/aspire/tree/main/tools/GenerateTestSummary)
Are those test details really needed? Why bother with custom reporting code? Why not try some existing action(s) for the purpose?
I've tried/added the Publish Test Results action to my fork. Here's the sample test results - nice and brief: https://github.com/chirontt/gitextensions/actions/runs/18733549565
- setup an integration with SignPath (https://github.com/SignPath/github-actions)
PR is welcome 😃
- provide good test result experience (e.g., something like dotnet/aspire/actions/runs/18642665923; I'm pretty certain we can borrow ideas/implementations --> I think this is it: dotnet/aspire@
main/tools/GenerateTestSummary)Are those test details really needed? Why bother with custom reporting code? Why not try some existing action(s) for the purpose?
I've tried/added the Publish Test Results action to my fork. Here's the sample test results - nice and brief: chirontt/gitextensions/actions/runs/18733549565
Nice! This will certainly work.
- setup an integration with SignPath (SignPath/github-actions)
PR is welcome 😃
Sure thing. The list wasn't aimed at you specifically; it was added to describe all other associated work that must be done before we can move our CI/CD to GitHub.