Skip to content

setting to enable/disable the tray animation #98

setting to enable/disable the tray animation

setting to enable/disable the tray animation #98

Workflow file for this run

name: Windows CI
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
permissions:
contents: read
jobs:
build:
name: Windows build test (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- arch: amd64
runner: windows-latest
triplet: x64-windows-static
vcvars_arch: amd64
- arch: arm64
runner: windows-11-arm
triplet: arm64-windows-static
vcvars_arch: arm64
concurrency:
group: windows-ci-${{ matrix.arch }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: pwsh
env:
CLIPP_RELEASE_TRIPLET: ${{ matrix.triplet }}
VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/vcpkg-cache,readwrite
steps:
- name: Checkout clipp
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Read vcpkg baseline
id: vcpkg-baseline
run: |
$manifest = Get-Content -Raw src\vcpkg.json | ConvertFrom-Json
$baseline = $manifest.'builtin-baseline'
if (-not $baseline) {
throw "src\vcpkg.json must define builtin-baseline for CI."
}
"ref=$baseline" >> $env:GITHUB_OUTPUT
- name: Set vcpkg short root
run: |
$workspaceRoot = [System.IO.Path]::GetPathRoot($env:GITHUB_WORKSPACE)
if (-not $workspaceRoot) {
throw "Could not determine workspace drive from GITHUB_WORKSPACE='$env:GITHUB_WORKSPACE'."
}
$vcpkgRoot = Join-Path $workspaceRoot "v"
if (Test-Path $vcpkgRoot) {
throw "vcpkg short root already exists: $vcpkgRoot"
}
New-Item -ItemType Directory -Path $vcpkgRoot | Out-Null
"VCPKG_ROOT=$vcpkgRoot" >> $env:GITHUB_ENV
Write-Host "Using VCPKG_ROOT=$vcpkgRoot"
- name: Checkout vcpkg
run: |
git clone --no-tags https://github.com/microsoft/vcpkg.git $env:VCPKG_ROOT
git -C $env:VCPKG_ROOT checkout --detach ${{ steps.vcpkg-baseline.outputs.ref }}
- name: Bootstrap vcpkg
run: |
$bootstrap = Join-Path $env:VCPKG_ROOT "bootstrap-vcpkg.bat"
& $bootstrap -disableMetrics
- name: Prepare vcpkg binary cache
run: New-Item -ItemType Directory -Force vcpkg-cache | Out-Null
- name: Cache vcpkg binaries
uses: actions/cache@v5
with:
path: vcpkg-cache
key: ${{ runner.os }}-${{ runner.arch }}-vcpkg-${{ matrix.triplet }}-${{ hashFiles('src/vcpkg.json', 'src/vcpkg-triplets/**') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-vcpkg-${{ matrix.triplet }}-
- name: Build Release
run: .\scripts\build_windows.ps1 -BuildType Release -Triplet $env:CLIPP_RELEASE_TRIPLET -VcVarsArch ${{ matrix.vcvars_arch }} -DisableCodeSigning
- name: Verify Windows artifacts
run: |
$exe = ".\build\windows-release\clipp.exe"
$shim = ".\build\windows-release\clipp.com"
if (-not (Test-Path $exe)) {
throw "Missing expected executable: $exe"
}
if (-not (Test-Path $shim)) {
throw "Missing expected console shim: $shim"
}
- name: Verify static dependency closure
run: |
$exe = ".\build\windows-release\clipp.exe"
$vswhere = Join-Path ${env:ProgramFiles(x86)} "Microsoft Visual Studio\Installer\vswhere.exe"
$installPath = & $vswhere -latest -products * -property installationPath
$vcvars = Join-Path $installPath "VC\Auxiliary\Build\vcvarsall.bat"
$dump = & cmd.exe /d /s /c "call `"$vcvars`" ${{ matrix.vcvars_arch }} >nul && dumpbin /dependents `"$exe`""
$dump
$blocked = $dump | Select-String -Pattern "VCRUNTIME|MSVCP|ucrtbase|libsodium|xxhash|zstd|lodepng" -CaseSensitive:$false
if ($blocked) {
throw "Release exe imports non-system runtime/dependency DLLs: $($blocked -join '; ')"
}