fix(ci): canonicalize browser release inputs on Windows #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Collector Contracts | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| jobs: | |
| portable: | |
| name: Portable contracts and tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| cache-dependency-path: collection/collectors/Heartbeat.Collector.Browser/package-lock.json | |
| - name: Build and test Browser Collector | |
| working-directory: collection/collectors/Heartbeat.Collector.Browser | |
| run: | | |
| npm ci | |
| npm test | |
| npm run build | |
| - name: Verify Fact Schema evolution and generated Browser payload | |
| env: | |
| CONTRACT_BASE_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }} | |
| run: node scripts/collector-contracts.mjs check --base-ref "$CONTRACT_BASE_REF" | |
| - uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Restore .NET tools and dependencies | |
| run: | | |
| dotnet tool restore | |
| dotnet restore Heartbeat.slnx | |
| - name: Verify portable .NET behavior | |
| run: | | |
| dotnet test shared/Heartbeat.Core.Tests/Heartbeat.Core.Tests.csproj -c Release --no-restore | |
| dotnet test collection/protocol/Heartbeat.Collection.CollectorProtocol.Tests/Heartbeat.Collection.CollectorProtocol.Tests.csproj -c Release --no-restore | |
| dotnet test collection/collectors/Heartbeat.Collector.Reference.ManagedProcess.Tests/Heartbeat.Collector.Reference.ManagedProcess.Tests.csproj -c Release --no-restore | |
| dotnet test collection/collectors/Heartbeat.Collector.VRChat.Tests/Heartbeat.Collector.VRChat.Tests.csproj -c Release --no-restore | |
| dotnet test collection/hub/Heartbeat.Collection.Headless.Tests/Heartbeat.Collection.Headless.Tests.csproj -c Release --no-restore | |
| dotnet test collection/hub/Heartbeat.Collection.Hub.Tests/Heartbeat.Collection.Hub.Tests.csproj -c Release --no-restore | |
| dotnet test collection/desktop/Heartbeat.Collector.System.Tests/Heartbeat.Collector.System.Tests.csproj -c Release --no-restore | |
| dotnet test collection/desktop/Heartbeat.Desktop.UI.Tests/Heartbeat.Desktop.UI.Tests.csproj -c Release --no-restore | |
| dotnet test collection/desktop/Heartbeat.Desktop.Updater.Velopack.Tests/Heartbeat.Desktop.Updater.Velopack.Tests.csproj -c Release --no-restore | |
| dotnet test server/Heartbeat.Server.Tests/Heartbeat.Server.Tests.csproj -c Release --no-restore | |
| macos: | |
| name: macOS desktop tests | |
| runs-on: macos-15 | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Verify macOS platform head | |
| run: dotnet test collection/desktop/Heartbeat.Desktop.Mac.Tests/Heartbeat.Desktop.Mac.Tests.csproj -c Release | |
| windows: | |
| name: Windows desktop tests | |
| runs-on: windows-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| - uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Verify Browser Collector package payload on Windows | |
| shell: bash | |
| run: | | |
| npm ci --prefix collection/collectors/Heartbeat.Collector.Browser | |
| npm run build --prefix collection/collectors/Heartbeat.Collector.Browser | |
| node scripts/collector-contracts.mjs check | |
| - name: Verify Windows platform head | |
| run: dotnet test collection/desktop/Heartbeat.Desktop.Windows.Tests/Heartbeat.Desktop.Windows.Tests.csproj -c Release | |
| frontend: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install Frontend dependencies | |
| working-directory: frontend | |
| run: npm ci | |
| - name: Verify Frontend types, behavior and production build | |
| working-directory: frontend | |
| run: | | |
| npm run typecheck | |
| npm test | |
| npm run build |