Make AuthenticatorDetails.AaGuid nullable #158
Workflow file for this run
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: 'Build and Test' | |
| on: | |
| push: | |
| paths: | |
| - 'Src/**' | |
| - '.github/workflows/autobuild.yml' | |
| pull_request: | |
| paths: | |
| - 'Src/**' | |
| - '.github/workflows/autobuild.yml' | |
| jobs: | |
| build: | |
| name: 'Build' | |
| runs-on: windows-2025-vs2026 | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| issues: read | |
| checks: write | |
| pull-requests: write | |
| env: | |
| DOTNET_NOLOGO: true | |
| DOTNET_CLI_TELEMETRY_OPTOUT: true | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| cache: true | |
| cache-dependency-path: 'Src/*/packages.lock.json' | |
| - name: Restore NuGet Packages | |
| run: dotnet restore --locked-mode | |
| - name: Build Binaries | |
| run: | | |
| dotnet build --configuration Release --no-restore | |
| dotnet build --configuration Debug --no-restore | |
| - name: Publish PasskeyUI (win-x64) | |
| run: dotnet publish Src/PasskeyUI/PasskeyUI.csproj --configuration Release --runtime win-x64 --no-restore | |
| - name: Upload Desktop App as Artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: PasskeyUI | |
| path: Build/publish/PasskeyUI/release_win-x64/* | |
| - name: Build PowerShell Module | |
| working-directory: Scripts | |
| shell: powershell | |
| run: .\Build-PowerShellModule.ps1 -Configuration Debug,Release | |
| - name: Test PowerShell Module | |
| env: | |
| EntraIdTenantId: ${{ secrets.ENTRAIDTENANTID }} | |
| EntraIdClientId: ${{ secrets.ENTRAIDCLIENTID }} | |
| EntraIdClientSecret: ${{ secrets.ENTRAIDCLIENTSECRET }} | |
| EntraIdUserId: ${{ secrets.ENTRAIDUSERID }} | |
| OktaTenantId: ${{ secrets.OKTATENANTID }} | |
| OktaClientId: ${{ secrets.OKTACLIENTID }} | |
| OktaJsonWebKey: ${{ secrets.OKTAJSONWEBKEY }} | |
| OktaUserId: ${{ secrets.OKTAUSERID }} | |
| shell: powershell | |
| run: Src/DSInternals.Passkeys/Test.ps1 -Configuration Debug | |
| - name: Upload PowerShell Module as Artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: PowerShell | |
| path: Build/bin/PSModule/Release/* | |
| - name: Create NuGet Packages | |
| run: dotnet pack --configuration Release --no-build | |
| - name: Upload NuGet Packages as Artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: NuGet | |
| path: Build/package/release/*nupkg | |
| - name: Run Non-Interactive Unit Tests | |
| run: dotnet test --filter TestCategory!=Interactive --configuration Debug --no-build --results-directory Build/TestResults --report-trx --coverage --coverage-output-format cobertura | |
| continue-on-error: true | |
| - name: Publish Test Results | |
| uses: EnricoMi/publish-unit-test-result-action/windows@v2 | |
| if: always() | |
| with: | |
| files: Build\TestResults\**\*.trx | |
| - name: Cache DotNet Global Tools | |
| id: cache-dotnet-globaltools | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.dotnet/tools | |
| # Heuristics: The current list of required global tools is defined in this workflow file. | |
| key: ${{ runner.os }}-DotNET-GlobalTools-Build-${{ hashFiles('.github/workflows/autobuild.yml') }} | |
| - name: Install Coverage Report Generator | |
| if: ${{ steps.cache-dotnet-globaltools.outputs.cache-hit != 'true' }} | |
| run: dotnet tool install --global dotnet-reportgenerator-globaltool | |
| - name: Generate Code Coverage Reports | |
| working-directory: Build/TestResults | |
| run: reportgenerator -reports:*.cobertura.xml -targetdir:. -reporttypes:"HtmlSummary" -title:"WebAuthn Interop Assembly" | |
| - name: Upload Test Results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: TestResults | |
| path: | | |
| Build/TestResults/*.* | |
| !**/*.htm | |
| analyze: | |
| name: Analyze (${{ matrix.language }}) | |
| runs-on: windows-2025-vs2026 | |
| permissions: | |
| security-events: write | |
| packages: read | |
| # only required for workflows in private repositories | |
| actions: read | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - language: actions | |
| build-mode: none | |
| - language: csharp | |
| build-mode: none | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Initialize CodeQL | |
| uses: github/codeql-action/init@v4 | |
| with: | |
| languages: ${{ matrix.language }} | |
| build-mode: ${{ matrix.build-mode }} | |
| queries: code-scanning # Options: code-scanning, security-extended, security-and-quality | |
| - name: Perform CodeQL Analysis | |
| uses: github/codeql-action/analyze@v4 | |
| with: | |
| category: "/language:${{ matrix.language }}" |