Summary
Create a GitHub Actions workflow that restores, builds, and tests the WinDroid Runtime solution for pushes and pull requests.
The workflow should use a Windows runner because the solution contains a WinUI 3 application.
This workflow is intended to validate contributions. It should not publish releases or deployment artifacts.
Background
Automated build validation will help contributors identify:
- Compilation failures
- Missing project references
- Dependency-restore problems
- Debug and Release differences
- Unit-test failures
- New warnings where warnings are treated as errors
The repository already provides local build commands. The workflow should follow the same build expectations.
Workflow Triggers
Run the workflow for:
Push triggers may be limited to important branches such as:
Use the actual development branch names present in the repository.
Runner Requirements
Use:
A Windows runner is required for WinUI and Windows App SDK build compatibility.
Build Requirements
The workflow should:
- Check out the repository
- Set up the required .NET SDK
- Restore the solution
- Build Debug configuration
- Build Release configuration
- Run unit tests
- Fail when any required step fails
Use the repository solution:
Suggested Commands
dotnet restore .\WinDroid.Runtime.slnx
dotnet build .\WinDroid.Runtime.slnx `
--configuration Debug `
--no-restore
dotnet build .\WinDroid.Runtime.slnx `
--configuration Release `
--no-restore
dotnet test .\WinDroid.Runtime.slnx `
--configuration Release `
--no-build
Commands may be adjusted if WinUI project behavior requires a more appropriate solution-level test command.
SDK Requirements
The workflow should install the SDK version expected by the repository.
If both .NET 8 targeting and a newer SDK are involved:
- Document the reason clearly
- Avoid unnecessary SDK installations
- Keep the workflow consistent with local build documentation
Permissions
Use minimum workflow permissions.
For a build-only workflow, prefer:
permissions:
contents: read
Do not grant write permissions unless a future workflow specifically needs them.
Concurrency
Add concurrency control where practical so outdated runs for the same pull request can be cancelled.
concurrency:
group: build-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Tasks
- Create
.github/workflows/build.yml
- Add checkout step
- Configure .NET SDK
- Restore the solution
- Build Debug configuration
- Build Release configuration
- Run tests
- Add minimum permissions
- Add concurrency control
- Confirm workflow works for pull requests
- Confirm workflow works for selected push branches
- Document any runner-specific requirements
Out of Scope
This issue does not need to:
- Publish MSIX packages
- Create GitHub releases
- Sign binaries
- Upload installers
- Deploy applications
- Run Android devices or emulators
- Install ADB
- Run hardware-dependent integration tests
- Upload code-coverage reports
- Add release versioning
Acceptance Criteria
- A build workflow exists under
.github/workflows/.
- The workflow runs on pull requests.
- The workflow runs on configured push branches.
- The workflow uses a Windows runner.
- The solution restores successfully.
- Debug configuration is built.
- Release configuration is built.
- Unit tests run automatically.
- A build or test failure causes the workflow to fail.
- Workflow permissions are limited to what is required.
- Overlapping outdated runs are cancelled where configured.
- No release or deployment artifacts are published.
- The workflow file is valid YAML.
- The workflow completes successfully on the current repository state.
Summary
Create a GitHub Actions workflow that restores, builds, and tests the WinDroid Runtime solution for pushes and pull requests.
The workflow should use a Windows runner because the solution contains a WinUI 3 application.
This workflow is intended to validate contributions. It should not publish releases or deployment artifacts.
Background
Automated build validation will help contributors identify:
The repository already provides local build commands. The workflow should follow the same build expectations.
Workflow Triggers
Run the workflow for:
Push triggers may be limited to important branches such as:
Use the actual development branch names present in the repository.
Runner Requirements
Use:
A Windows runner is required for WinUI and Windows App SDK build compatibility.
Build Requirements
The workflow should:
Use the repository solution:
Suggested Commands
Commands may be adjusted if WinUI project behavior requires a more appropriate solution-level test command.
SDK Requirements
The workflow should install the SDK version expected by the repository.
If both .NET 8 targeting and a newer SDK are involved:
Permissions
Use minimum workflow permissions.
For a build-only workflow, prefer:
Do not grant write permissions unless a future workflow specifically needs them.
Concurrency
Add concurrency control where practical so outdated runs for the same pull request can be cancelled.
Tasks
.github/workflows/build.ymlOut of Scope
This issue does not need to:
Acceptance Criteria
.github/workflows/.