gitextensions icon indicating copy to clipboard operation
gitextensions copied to clipboard

add GHA build script for x64, arm64

Open chirontt opened this issue 2 months ago • 4 comments

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

image

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.

chirontt avatar Oct 19 '25 23:10 chirontt

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)

RussKie avatar Oct 20 '25 07:10 RussKie

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.)

image image

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.

mstv avatar Oct 20 '25 18:10 mstv

  • 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 image

  • setup an integration with SignPath (https://github.com/SignPath/github-actions)

PR is welcome 😃

chirontt avatar Oct 23 '25 01:10 chirontt

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.

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.

RussKie avatar Oct 25 '25 00:10 RussKie