Skip to content

Commit 0b2250e

Browse files
committed
Integration CI Tests: Extend matrix for more runners and two Electron versions
1 parent aa483eb commit 0b2250e

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

.github/workflows/integration-tests.yml

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,25 @@ concurrency:
1212

1313
jobs:
1414
tests:
15-
name: Integration Tests (${{ matrix.os }})
15+
name: Integration Tests (${{ matrix.os }} / Electron ${{ matrix.electronVersion }})
1616
runs-on: ${{ matrix.os }}
1717
strategy:
1818
fail-fast: false
1919
matrix:
20+
electronVersion: ['30.4.0', '38.2.2']
2021
include:
22+
- os: ubuntu-22.04
23+
rid: linux-x64
2124
- os: ubuntu-24.04
2225
rid: linux-x64
2326
- os: windows-2022
2427
rid: win-x64
25-
- os: macos-14
28+
- os: windows-2025
29+
rid: win-x64
30+
- os: macos-26
2631
rid: osx-arm64
32+
- os: macos-14-large
33+
rid: osx-x64
2734

2835
env:
2936
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
@@ -46,10 +53,10 @@ jobs:
4653
node-version: '22'
4754

4855
- name: Restore
49-
run: dotnet restore -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj
56+
run: dotnet restore -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} -p:ElectronVersion=${{ matrix.electronVersion }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj
5057

5158
- name: Build
52-
run: dotnet build --no-restore -c Release -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj
59+
run: dotnet build --no-restore -c Release -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} -p:ElectronVersion=${{ matrix.electronVersion }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj
5360

5461
- name: Install Linux GUI dependencies
5562
if: runner.os == 'Linux'
@@ -64,32 +71,32 @@ jobs:
6471
if: runner.os == 'Linux'
6572
continue-on-error: true
6673
run: |
67-
mkdir -p test-results/Ubuntu
74+
mkdir -p test-results
6875
xvfb-run -a dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj \
69-
-c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} \
70-
--logger "trx;LogFileName=Ubuntu.trx" \
76+
-c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} -p:ElectronVersion=${{ matrix.electronVersion }} \
77+
--logger "trx;LogFileName=${{ runner.os }}-electron-${{ matrix.electronVersion }}.trx" \
7178
--logger "console;verbosity=detailed" \
7279
--results-directory test-results
7380
7481
- name: Run tests (Windows)
7582
if: runner.os == 'Windows'
7683
continue-on-error: true
7784
run: |
78-
New-Item -ItemType Directory -Force -Path test-results/Windows | Out-Null
79-
dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj -c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} --logger "trx;LogFileName=Windows.trx" --logger "console;verbosity=detailed" --results-directory test-results
85+
New-Item -ItemType Directory -Force -Path test-results | Out-Null
86+
dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj -c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} -p:ElectronVersion=${{ matrix.electronVersion }} --logger "trx;LogFileName=${{ runner.os }}-electron-${{ matrix.electronVersion }}.trx" --logger "console;verbosity=detailed" --results-directory test-results
8087
8188
- name: Run tests (macOS)
8289
if: runner.os == 'macOS'
8390
continue-on-error: true
8491
run: |
85-
mkdir -p test-results/macOS
86-
dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj -c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} --logger "trx;LogFileName=macOS.trx" --logger "console;verbosity=detailed" --results-directory test-results
92+
mkdir -p test-results
93+
dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj -c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} -p:ElectronVersion=${{ matrix.electronVersion }} --logger "trx;LogFileName=${{ runner.os }}-electron-${{ matrix.electronVersion }}.trx" --logger "console;verbosity=detailed" --results-directory test-results
8794
8895
- name: Upload raw test results
8996
if: always()
9097
uses: actions/upload-artifact@v4
9198
with:
92-
name: test-results-${{ matrix.os }}
99+
name: test-results-${{ matrix.os }}-electron-${{ matrix.electronVersion }}
93100
path: test-results/*.trx
94101
retention-days: 7
95102

@@ -121,23 +128,25 @@ jobs:
121128
dotnet new tool-manifest
122129
dotnet tool install DotnetCtrfJsonReporter --local
123130
124-
- name: Convert TRX → CTRF and clean names (keep suites; set filePath=OS)
131+
- name: Convert TRX → CTRF and clean names (filePath=OS|Electron X.Y.Z)
125132
shell: bash
126133
run: |
127134
set -euo pipefail
128135
mkdir -p ctrf
129-
shopt -s globstar nullglob
136+
shopt -s nullglob
130137
conv=0
131-
for trx in test-results/**/*.trx; do
132-
fname="$(basename "$trx")"
133-
os="${fname%.trx}"
134-
outdir="ctrf/${os}"
138+
for trx in test-results/*.trx; do
139+
base="$(basename "$trx" .trx)" # e.g. Windows-electron-30.4.0
140+
os="${base%%-electron-*}" # part before -electron-
141+
electron="${base#*-electron-}" # part after -electron-
142+
label="$os|Electron $electron"
143+
outdir="ctrf/${label}"
135144
mkdir -p "$outdir"
136145
out="${outdir}/ctrf-report.json"
137146
138147
dotnet tool run DotnetCtrfJsonReporter -p "$trx" -d "$outdir" -f "ctrf-report.json"
139148
140-
jq --arg os "$os" '.results.tests |= map(.filePath = $os)' "$out" > "${out}.tmp" && mv "${out}.tmp" "$out"
149+
jq --arg fp "$label" '.results.tests |= map(.filePath = $fp)' "$out" > "${out}.tmp" && mv "${out}.tmp" "$out"
141150
142151
echo "Converted & normalized $trx -> $out"
143152
conv=$((conv+1))

0 commit comments

Comments
 (0)