Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions .github/workflows/cli-headless-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: CLI Headless E2E

on:
pull_request:
branches: [ "main" ]
paths:
- 'src/**/*.cs'
- 'src/**/*.csproj'
- 'src/**/*.props'
- 'src/**/*.targets'
- 'src/**/*.sln'
- 'src/**/*.slnx'
- 'testing/automation/**'
- '.github/workflows/cli-headless-e2e.yml'
- 'global.json'
workflow_dispatch:

jobs:
cli-headless-e2e:
strategy:
fail-fast: false
matrix:
include:
- name: Windows (WinUI 3)
os: windows-latest
solution: UniGetUI.Windows.slnx
daemon_project: UniGetUI/UniGetUI.csproj
daemon_build_args: '-p:Platform=x64'
manifest: testing/automation/cli-e2e.manifest.windows.json
- name: Linux (Avalonia)
os: ubuntu-latest
solution: UniGetUI.Avalonia.slnx
daemon_project: UniGetUI.Avalonia/UniGetUI.Avalonia.csproj
daemon_build_args: ''
manifest: testing/automation/cli-e2e.manifest.linux.json

name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
CONFIGURATION: Release
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Setup .NET SDK
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Cache NuGet packages
uses: actions/cache@v5
with:
path: ${{ env.NUGET_PACKAGES }}
key: ${{ runner.os }}-nuget-e2e-${{ hashFiles('global.json', 'src/**/*.csproj', 'src/**/*.props', 'src/**/*.targets', 'src/**/*.sln', 'src/**/*.slnx') }}
restore-keys: |
${{ runner.os }}-nuget-e2e-

- name: Restore solution
working-directory: src
shell: pwsh
run: dotnet restore ${{ matrix.solution }}

- name: Build headless daemon
working-directory: src
shell: pwsh
run: |
$args = @(
'build',
'${{ matrix.daemon_project }}',
'--no-restore',
'--configuration',
'${{ env.CONFIGURATION }}',
'--verbosity',
'minimal'
)
if ('${{ matrix.daemon_build_args }}') {
$args += '${{ matrix.daemon_build_args }}'
}
dotnet @args

- name: Upgrade pip tooling
shell: pwsh
run: python -m pip install --upgrade pip setuptools wheel

- name: Show package-manager inventory
shell: pwsh
run: |
dotnet --version
python --version
python -m pip --version
npm --version

- name: Run headless CLI E2E
shell: pwsh
env:
UNIGETUI_CLI_E2E_MANIFEST: ${{ matrix.manifest }}
UNIGETUI_CLI_E2E_ARTIFACTS: ${{ github.workspace }}/artifacts/cli-headless-e2e/${{ runner.os }}
run: ./testing/automation/run-cli-e2e.ps1

- name: Upload CLI E2E artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: cli-headless-e2e-${{ matrix.name }}
path: artifacts/cli-headless-e2e/${{ runner.os }}
if-no-files-found: warn
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Use these rules when changing Avalonia diagnostics/devtools behavior:
- Default policy: enabled in `Debug`, disabled in `Release`.
- `src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj` must condition `AvaloniaUI.DiagnosticsSupport` on `$(EnableAvaloniaDiagnostics)`.
- Compile-time diagnostics code in `src/UniGetUI.Avalonia/Program.cs` must be gated by `#if AVALONIA_DIAGNOSTICS_ENABLED` (not `#if DEBUG`).
- Runtime controls are developer-only and intentionally not listed in `cli-arguments.md`.
- Runtime controls are developer-only and intentionally not listed in `docs/CLI.md`.
- Runtime precedence in `Program.cs`: CLI flags > `UNIGETUI_AVALONIA_DEVTOOLS` environment variable > `Auto` default.
- Accepted runtime env/CLI values for mode parsing: `auto`, `enabled`, `disabled`, `on`, `off`, `true`, `false`, `1`, `0`.
- `Auto` mode must remain WSL-safe (DevTools disabled by default on WSL).
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ Read more in the [Devolutions announcement](https://devolutions.net/blog/2026/03
- [Contributors](#contributors)
- [Screenshots](#screenshots)
- [Frequently Asked Questions](#frequently-asked-questions)
- [Command-line Arguments](cli-arguments.md)
- [CLI reference](docs/CLI.md)
- [IPC reference](docs/IPC.md)

## Installation
<p>There are multiple ways to install UniGetUI — choose whichever one you prefer!</p>
Expand Down Expand Up @@ -185,6 +186,6 @@ Microsoft has implemented a few checks for the software available on Winget to m

<br><p align="center"><i>Check out the <a href="https://github.com/Devolutions/UniGetUI/wiki">Wiki</a> for more information!</i></p>

## Command-line parameters:
## Command-line interface:

Check out the full list of parameters [here](cli-arguments.md)
Check out the CLI reference [here](docs/CLI.md) and the IPC reference [here](docs/IPC.md).
54 changes: 0 additions & 54 deletions cli-arguments.md

This file was deleted.

Loading
Loading