Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
10bf461
Prepare for Blazor support
FlorianRappl Nov 14, 2025
cd205ed
common.props: Remove personal extras
softworkz Nov 15, 2025
442084a
MSBuild props/targets: Remove wrapped files
softworkz Nov 15, 2025
5305e17
MSBuild props/targets: Adapt demo/test projects for change
softworkz Nov 15, 2025
1e483e9
build project: Update packages (due to vulnerabilities)
softworkz Nov 14, 2025
946b2af
Webb app: add platform conditions
softworkz Nov 14, 2025
a6d67a4
Make CA1416 and error (platform-depended reachabílitiy of code
softworkz Nov 14, 2025
515430f
ApiBase: Rename PropertyGet to more generic Invocator
softworkz Nov 15, 2025
385dcfb
ApiBase: Code style and whitespace
softworkz Nov 15, 2025
bb7ae8d
Bump js-yaml in /src/ElectronNET.WebApp/ElectronHostHook
dependabot[bot] Nov 15, 2025
8ba24c0
Merge pull request #934 from ElectronNET/dependabot/npm_and_yarn/src/…
FlorianRappl Nov 15, 2025
12c5391
Merge pull request #932 from softworkz/submit_platform_specific
FlorianRappl Nov 15, 2025
1006355
Merge pull request #930 from softworkz/submit_pkg_update
FlorianRappl Nov 15, 2025
68c50f1
Merge pull request #928 from softworkz/submit_remove_priv
FlorianRappl Nov 15, 2025
7889057
Merge pull request #933 from softworkz/submit_invocation_rename
FlorianRappl Nov 15, 2025
c712027
ElectronNET.Host: Replace website by a real ts project
softworkz Nov 15, 2025
6c9027f
WebApp: Do not compiled TS on build
softworkz Nov 15, 2025
30b4d92
Add GitHub Action to check trailing whitespace on PRs
softworkz Nov 15, 2025
30b547b
Add R# settings
softworkz Nov 14, 2025
8e7892e
Fix whitespace formatting
softworkz Nov 15, 2025
dbf76a1
Merge pull request #927 from softworkz/submit_whitespace2
FlorianRappl Nov 15, 2025
90c3eb2
Merge pull request #935 from softworkz/submit_ts_project
FlorianRappl Nov 15, 2025
3f10d6b
Remove tests for app badgecount
softworkz Nov 14, 2025
dfcb234
Test project: Update to .net10
softworkz Nov 14, 2025
1a964b4
BrowserWindow tests: use about:blank as url
softworkz Nov 14, 2025
e4485fd
Remove Can_set_app_logs_path test
softworkz Nov 14, 2025
7558037
ElectronNET.IntegrationTests: Add platform support attributes
softworkz Nov 15, 2025
17f2474
Project defaults: Make RuntimeIdentifier overrideable
softworkz Nov 14, 2025
a30239e
Update electron start
softworkz Nov 15, 2025
c98ad58
Add xunit.runner.json
softworkz Nov 15, 2025
ff1b802
Update ElectronFixture
softworkz Nov 15, 2025
9488576
Add integration-tests workflow
softworkz Nov 15, 2025
61476e3
Try fix remaining tests
softworkz Nov 15, 2025
8e8d88c
Merge pull request #931 from softworkz/submit_update_tests
FlorianRappl Nov 16, 2025
0580942
ElectronNET API: Add platform support attributes
softworkz Nov 14, 2025
0ec791d
Improve test Progress_bar_and_always_on_top_toggle
softworkz Nov 16, 2025
2cf3095
BrowserWindowTests: Add delays everywhere
softworkz Nov 16, 2025
f53d071
Merge pull request #929 from softworkz/submit_platform_annotations
FlorianRappl Nov 16, 2025
20acd31
Updated changelog
FlorianRappl Nov 16, 2025
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
209 changes: 209 additions & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
name: Tests

on:
push:
branches: [ develop, main ]
pull_request:
branches: [ develop, main ]

concurrency:
group: integration-tests-${{ github.ref }}
cancel-in-progress: true

jobs:
tests:
name: Integration Tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
rid: linux-x64
- os: windows-2022
rid: win-x64
- os: macos-14
rid: osx-arm64

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: 1
CI: true
ELECTRON_ENABLE_LOGGING: 1

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

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'

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

- name: Restore
run: dotnet restore -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj

- name: Build
run: dotnet build --no-restore -c Release -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj

- name: Install Linux GUI dependencies
if: runner.os == 'Linux'
run: |
set -e
sudo apt-get update
# Core Electron dependencies
sudo apt-get install -y xvfb \
libgtk-3-0 libnss3 libgdk-pixbuf-2.0-0 libdrm2 libgbm1 libxss1 libxtst6 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libx11-xcb1 libasound2t64
- name: Run tests (Linux)
if: runner.os == 'Linux'
continue-on-error: true
run: |
mkdir -p test-results/Ubuntu
xvfb-run -a dotnet test src/ElectronNET.IntegrationTests/ElectronNET.IntegrationTests.csproj \
-c Release --no-build -r ${{ matrix.rid }} -p:RuntimeIdentifier=${{ matrix.rid }} \
--logger "trx;LogFileName=Ubuntu.trx" \
--logger "console;verbosity=detailed" \
--results-directory test-results
- name: Run tests (Windows)
if: runner.os == 'Windows'
continue-on-error: true
run: |
New-Item -ItemType Directory -Force -Path test-results/Windows | Out-Null
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
- name: Run tests (macOS)
if: runner.os == 'macOS'
continue-on-error: true
run: |
mkdir -p test-results/macOS
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
- name: Upload raw test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}
path: test-results/*.trx
retention-days: 7

summary:
name: Test Results
runs-on: ubuntu-24.04
if: always()
needs: [tests]

permissions:
actions: read
contents: read
checks: write
pull-requests: write

steps:
- name: Download all test results
uses: actions/download-artifact@v4
with:
path: test-results

- name: Setup .NET (for CTRF conversion)
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'

- name: Install CTRF TRX→CTRF converter (dotnet tool)
run: |
dotnet new tool-manifest
dotnet tool install DotnetCtrfJsonReporter --local
- name: Convert TRX → CTRF and clean names (keep suites; set filePath=OS)
shell: bash
run: |
set -euo pipefail
mkdir -p ctrf
shopt -s globstar nullglob
conv=0
for trx in test-results/**/*.trx; do
fname="$(basename "$trx")"
os="${fname%.trx}"
outdir="ctrf/${os}"
mkdir -p "$outdir"
out="${outdir}/ctrf-report.json"
dotnet tool run DotnetCtrfJsonReporter -p "$trx" -d "$outdir" -f "ctrf-report.json"
jq --arg os "$os" '.results.tests |= map(.filePath = $os)' "$out" > "${out}.tmp" && mv "${out}.tmp" "$out"
echo "Converted & normalized $trx -> $out"
conv=$((conv+1))
done
echo "Processed $conv TRX file(s)"
- name: Publish Test Report
if: always()
uses: ctrf-io/github-test-reporter@v1
with:
report-path: 'ctrf/**/*.json'

summary: true
pull-request: false
status-check: false
status-check-name: 'Integration Tests'
use-suite-name: true
update-comment: true
always-group-by: true
overwrite-comment: true
exit-on-fail: true
group-by: 'suite'
upload-artifact: true
fetch-previous-results: true

summary-report: false
summary-delta-report: true
github-report: true
test-report: false
test-list-report: false
failed-report: true
failed-folded-report: false
skipped-report: true
suite-folded-report: true
suite-list-report: false
file-report: true
previous-results-report: true
insights-report: true
flaky-report: true
flaky-rate-report: true
fail-rate-report: false
slowest-report: false

report-order: 'summary-delta-report,failed-report,skipped-report,suite-folded-report,file-report,previous-results-report,github-report'
env:
GITHUB_TOKEN: ${{ github.token }}


- name: Create PR Comment
if: always()
uses: ctrf-io/github-test-reporter@v1
with:
report-path: 'ctrf/**/*.json'

summary: true
pull-request: true
use-suite-name: true
update-comment: true
always-group-by: true
overwrite-comment: true
upload-artifact: false

pull-request-report: true
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Summary
run: echo "All matrix test jobs completed."
85 changes: 85 additions & 0 deletions .github/workflows/trailing-whitespace-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Trailing Whitespace Check

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
check-trailing-whitespace:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check for trailing whitespace
run: |
echo "Checking for trailing whitespace in changed files..."
# Get the base branch
BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
# Get list of changed files (excluding deleted files)
CHANGED_FILES=$(git diff --name-only --diff-filter=d "$BASE_SHA" "$HEAD_SHA")
if [ -z "$CHANGED_FILES" ]; then
echo "No files to check."
exit 0
fi
# File patterns to check (text files)
PATTERNS="\.cs$|\.csproj$|\.sln$|\.ts$|\.html$|\.css$|\.scss$"
# Directories and file patterns to exclude
EXCLUDE_PATTERNS="(^|\/)(\.|node_modules|bin|obj|artifacts|packages|\.vs|\.nuke\/temp)($|\/)"
ERRORS_FOUND=0
TEMP_FILE=$(mktemp)
while IFS= read -r file; do
# Skip if file doesn't exist (shouldn't happen with --diff-filter=d, but just in case)
if [ ! -f "$file" ]; then
continue
fi
# Check if file matches patterns to check
if ! echo "$file" | grep -qE "$PATTERNS"; then
continue
fi
# Check if file should be excluded
if echo "$file" | grep -qE "$EXCLUDE_PATTERNS"; then
continue
fi
# Find trailing whitespace lines, excluding XML doc placeholder lines that are exactly "/// " (one space)
MATCHES=$(grep -n '[[:space:]]$' "$file" | grep -vE '^[0-9]+:[[:space:]]*/// $' || true)
if [ -n "$MATCHES" ]; then
echo "❌ Trailing whitespace found in: $file"
echo "$MATCHES" | head -10
TOTAL=$(echo "$MATCHES" | wc -l)
if [ "$TOTAL" -gt 10 ]; then
echo " ... and $(($TOTAL - 10)) more lines"
fi
echo "1" >> "$TEMP_FILE"
fi
done <<< "$CHANGED_FILES"
ERRORS_FOUND=$(wc -l < "$TEMP_FILE" 2>/dev/null || echo "0")
rm -f "$TEMP_FILE"
if [ "$ERRORS_FOUND" -gt 0 ]; then
echo ""
echo "❌ Found trailing whitespace in $ERRORS_FOUND file(s)."
echo "Please remove trailing whitespace from the files listed above."
exit 1
else
echo "✅ No trailing whitespace found in changed files."
exit 0
fi
11 changes: 11 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# 0.2.0

## ElectronNET.Core

- Updated dependencies (#930) @softworkz
- Updated integration tests (#931) @softworkz
- Updated `ElectronNET.Host` (#935) @softworkz
- Removed transition period specific build configuration (#928) @softworkz
- Added `IsRunningBlazor` option to `BrowserWindowOptions` (#926)
- Added platform support attributes (#929) @softworkz

# 0.1.0

## ElectronNET.Core
Expand Down
Loading