ci: run the release as a reusable job inside the nightly beta run (20… #8
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: windows-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Cache NuGet | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nuget/packages | |
| key: nuget-${{ runner.os }}-${{ hashFiles('Directory.Packages.props', '**/*.csproj') }} | |
| restore-keys: nuget-${{ runner.os }}- | |
| - name: Script self-tests | |
| shell: pwsh | |
| run: | | |
| ./.github/scripts/Test-WorkflowSyntax.ps1 | |
| ./.github/scripts/Test-ReleaseVersionSequence.ps1 | |
| ./.github/scripts/Test-GenerateReleaseNotes.ps1 | |
| - name: Restore | |
| shell: pwsh | |
| run: | | |
| dotnet restore VRCFaceTracking.sln -p:Platform=x64 | |
| if ($LASTEXITCODE -ne 0) { throw "restore failed ($LASTEXITCODE)" } | |
| - name: Check formatting | |
| shell: pwsh | |
| run: | | |
| dotnet format VRCFaceTracking.sln --verify-no-changes --no-restore | |
| if ($LASTEXITCODE -ne 0) { throw "formatting drift; run 'dotnet format VRCFaceTracking.sln' and commit ($LASTEXITCODE)" } | |
| build: | |
| name: Build ${{ matrix.channel }} | |
| runs-on: windows-latest | |
| timeout-minutes: 40 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| channel: [dev, release] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Cache NuGet | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nuget/packages | |
| key: nuget-${{ runner.os }}-${{ hashFiles('Directory.Packages.props', '**/*.csproj') }} | |
| restore-keys: nuget-${{ runner.os }}- | |
| - name: Restore | |
| shell: pwsh | |
| run: | | |
| dotnet restore VRCFaceTracking.sln -p:Platform=x64 | |
| if ($LASTEXITCODE -ne 0) { throw "restore failed ($LASTEXITCODE)" } | |
| - name: Build | |
| shell: pwsh | |
| run: | | |
| dotnet build VRCFaceTracking.sln -c Release -p:Platform=x64 -p:VftBuildChannel=${{ matrix.channel }} -p:VftVersion=0.0.0.0-CI --no-restore | |
| if ($LASTEXITCODE -ne 0) { throw "build failed ($LASTEXITCODE)" } | |
| - name: Test | |
| shell: pwsh | |
| run: | | |
| dotnet test VRCFaceTracking.Core.Tests/VRCFaceTracking.Core.Tests.csproj -c Release -p:Platform=x64 --no-build --logger "trx;LogFileName=core.trx" | |
| if ($LASTEXITCODE -ne 0) { throw "tests failed ($LASTEXITCODE)" } | |
| - name: Publish | |
| shell: pwsh | |
| run: | | |
| ./.github/scripts/Publish-App.ps1 -Channel ${{ matrix.channel }} -Version 0.0.0.0-CI -OutDir build/publish | |
| if ($LASTEXITCODE -ne 0) { throw "publish failed ($LASTEXITCODE)" } | |
| - name: Upload package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: vrcfacetracking-${{ matrix.channel }}-${{ github.sha }} | |
| path: build/publish | |
| retention-days: 14 | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-${{ matrix.channel }} | |
| path: '**/TestResults/*.trx' |