feat: stabilize recipe workflows and improve setup UX #72
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: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: Build and smoke | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 8.0.421 | |
| - name: Check required README sections | |
| shell: pwsh | |
| run: | | |
| $readme = Get-Content README.md -Raw -Encoding UTF8 | |
| $required = @( | |
| '## 1분 요약', | |
| '## 설치', | |
| '## 실행', | |
| '## 샘플 데이터', | |
| '## Build Command', | |
| '## Smoke Command', | |
| '## CI', | |
| '## Release Notes', | |
| '## Roadmap', | |
| '## Known Limitations' | |
| ) | |
| foreach ($section in $required) { | |
| if (-not $readme.Contains($section)) { | |
| throw "README is missing required section: $section" | |
| } | |
| } | |
| if (-not (Test-Path RELEASE_NOTES.md)) { | |
| throw "RELEASE_NOTES.md is missing" | |
| } | |
| - name: Build tests | |
| shell: pwsh | |
| run: powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build-LabelingApplicationTests.ps1 -OutputName isolated-out | |
| - name: Verify documentation information architecture | |
| shell: pwsh | |
| run: powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\Test-DocumentationInformationArchitecture.ps1 | |
| - name: Smoke docs | |
| shell: pwsh | |
| run: dotnet .\artifacts\tests\isolated-out\LabelingApplication.Tests.dll --priority-workflow-docs | |
| - name: Run complete regression once | |
| shell: pwsh | |
| timeout-minutes: 15 | |
| run: dotnet .\artifacts\tests\isolated-out\LabelingApplication.Tests.dll | |
| - name: Publish versioned self-contained release | |
| shell: pwsh | |
| run: powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\publish-win-x64.ps1 -Configuration Release | |
| - name: Verify release package contract | |
| shell: pwsh | |
| run: dotnet .\artifacts\tests\isolated-out\LabelingApplication.Tests.dll --release-package-contract | |
| - name: Upload versioned win-x64 release | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: openvisionlab-labeling-studio-0.1.0-win-x64 | |
| path: artifacts/publish/Release/win-x64/0.1.0 | |
| if-no-files-found: error | |
| - name: Whitespace check | |
| shell: pwsh | |
| run: git diff --check |