Skip to content

release: v1.0.38

release: v1.0.38 #10

Workflow file for this run

name: Windows
on:
workflow_dispatch:
push:
paths: ["windows/**"]
pull_request:
paths: ["windows/**"]
permissions:
contents: read
jobs:
build-and-test:
runs-on: windows-latest
defaults:
run:
working-directory: windows
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Restore dependencies
shell: pwsh
run: dotnet restore CodeIsland.Windows.sln
- name: Run unit tests
shell: pwsh
run: dotnet test CodeIsland.Core.Tests/CodeIsland.Core.Tests.csproj -c Release --no-restore
- name: Build applications
shell: pwsh
run: |
dotnet build CodeIsland.Windows/CodeIsland.Windows.csproj -c Release --no-restore
dotnet build CodeIsland.Bridge/CodeIsland.Bridge.csproj -c Release --no-restore
- name: Run smoke tests
shell: pwsh
run: dotnet run --project CodeIsland.Windows.Smoke/CodeIsland.Windows.Smoke.csproj -c Release --no-restore
- name: Package
shell: pwsh
run: pwsh -NoProfile -ExecutionPolicy Bypass -File ./scripts/build-release.ps1
- name: Verify package
shell: pwsh
run: |
$manifest = Get-Content artifacts/release-manifest.json -Raw | ConvertFrom-Json
$archive = Join-Path artifacts $manifest.archive
if ((Get-FileHash $archive -Algorithm SHA256).Hash.ToLowerInvariant() -ne $manifest.sha256) { throw "Archive hash mismatch" }
if (-not (Test-Path artifacts/staging/CodeIsland.Windows.exe)) { throw "Desktop executable missing" }
if (-not (Test-Path artifacts/staging/CodeIsland.Bridge.exe)) { throw "Bridge executable missing" }
- uses: actions/upload-artifact@v4
with:
name: codeisland-windows
path: |
windows/artifacts/*.zip
windows/artifacts/release-manifest.json