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
149 changes: 149 additions & 0 deletions .github/workflows/client-final.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Client Final Matrix

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name == 'main' && github.run_id || github.ref_name }}
cancel-in-progress: true

permissions:
contents: read

defaults:
run:
shell: pwsh

jobs:
client:
name: Client final (${{ matrix.name }})
runs-on: ${{ matrix.os }}
timeout-minutes: 90

strategy:
fail-fast: false
matrix:
include:
- name: Windows
os: windows-latest
gradle: .\gradlew.bat
use_xvfb: false
package_distribution: true

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

- name: Setup JDK 21
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "21"

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6

- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: "2.8.0"

- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "24"

- name: Install Linux desktop packaging dependencies
if: matrix.use_xvfb
run: |
sudo apt-get update
sudo apt-get install -y `
xvfb `
fakeroot `
dpkg `
libgl1 `
libxi6 `
libxrender1 `
libxtst6 `
libxrandr2 `
libxinerama1 `
libxcursor1

- name: Verify workspace and version locks
run: ${{ matrix.gradle }} verifyVersionLocks projects --stacktrace --no-daemon

- name: Verify generated artifacts and fixtures
run: |
./scripts/verify-generation-determinism.ps1
./scripts/verify-locale-determinism.ps1
./scripts/verify-agent-rpc-fixtures.ps1
./scripts/verify-settings-schema.ps1
./scripts/verify-provider-fixtures.ps1
./scripts/verify-no-provider-json-leak.ps1
./scripts/verify-sync-mocks.ps1
./scripts/verify-import-export-fixtures.ps1
git diff --exit-code -- `
idl/agent-rpc/generated `
packages/agent-rpc-kotlin/src/generated `
packages/local-services/src/main/resources/locales `
packages/protocol-sbe/src/generated `
ts/agent/generated

- name: Run Gradle client checks
run: |
${{ matrix.gradle }} check `
:tests:architecture:check `
:apps:desktop:check `
:desktop-shared:compose-ui:check `
:packages:local-center:check `
:packages:local-persistence:check `
:packages:net-core:check `
:packages:tool-core:check `
:integrations:mcp:check `
:integrations:plugins:check `
--stacktrace --no-daemon

- name: Run Deno agent checks
working-directory: ts/agent
run: |
deno task version-lock
deno task fmt
deno task lint
deno task check
deno task test
deno task compile-smoke

- name: Run JVM IPC checks and smoke
run: |
${{ matrix.gradle }} `
:jvm:aeron-media-driver:check `
:jvm:capability-host:check `
:packages:ipc-core:check `
:packages:protocol-sbe:check `
--stacktrace --no-daemon
${{ matrix.gradle }} :jvm:aeron-media-driver:run --args="--smoke" --stacktrace --no-daemon
${{ matrix.gradle }} :jvm:capability-host:run --args="--smoke" --stacktrace --no-daemon

- name: Verify package manifest, reproducibility, and notices
run: |
${{ matrix.gradle }} :apps:desktop:verifyPackageReproducibility --stacktrace --no-daemon
./scripts/verify-package-manifest.ps1
./scripts/verify-notice.ps1

- name: Package current OS distribution
if: matrix.package_distribution && !matrix.use_xvfb
run: ${{ matrix.gradle }} :apps:desktop:packageDistributionForCurrentOS --stacktrace --no-daemon

- name: Package current OS distribution with virtual display
if: matrix.package_distribution && matrix.use_xvfb
run: xvfb-run --auto-servernum ${{ matrix.gradle }} :apps:desktop:packageDistributionForCurrentOS --stacktrace --no-daemon

- name: Run performance baseline checks
if: matrix.package_distribution
run: ./scripts/run-performance-baseline.ps1 -SkipWindowLaunch
Loading
Loading