Files
hiha-arvio/.github/workflows/test.yml
Ismo Vuorinen 78b0b325a5 ci: Add GitHub workflows for test, build, and publish
Add comprehensive CI/CD workflows:

**Test Workflow (test.yml)**
- Runs on push/PR to main/develop
- Executes all 189 xUnit tests on Ubuntu runner
- Publishes test results and artifacts
- Fast and cost-effective validation

**Build Workflow (build.yml)**
- Builds for iOS and macOS Catalyst
- Runs on macOS-14 runners (Apple Silicon)
- Parallel builds for all platforms
- Uploads build artifacts (7-day retention)
- Overall build status reporting

**Publish Workflow (publish.yml)**
- Triggered by version tags (v*.*.*)
- Creates GitHub releases with changelogs
- Builds signed releases for distribution
- Uploads iOS and macOS .zip artifacts
- Supports pre-release detection (alpha/beta/rc)
- Manual workflow dispatch option

Features:
- .NET 8.0 with MAUI workload
- Parallel job execution for performance
- Artifact management and retention
- Test result reporting
- Release automation with version tracking
- Comprehensive documentation in workflows/README.md

Platforms supported:
- iOS 15.0+ (iossimulator-arm64)
- macOS 12.0+ Catalyst (maccatalyst-arm64)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 13:51:07 +02:00

48 lines
1.1 KiB
YAML

name: Test
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
test:
name: Run Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: dotnet restore HihaArvio.sln
- name: Build solution
run: dotnet build HihaArvio.sln --configuration Release --no-restore -f net8.0
- name: Run tests
run: dotnet test HihaArvio.sln --configuration Release --no-build --verbosity normal -f net8.0 --logger "trx;LogFileName=test-results.trx"
- name: Publish test results
uses: dorny/test-reporter@v1
if: always()
with:
name: Test Results
path: '**/test-results.trx'
reporter: dotnet-trx
fail-on-error: true
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: '**/test-results.trx'
retention-days: 30