Files
Terminal.Gui/.github/workflows/dotnet-core.yml
2024-07-07 16:41:11 -06:00

70 lines
2.2 KiB
YAML

name: Build & Test Terminal.Gui with .NET Core
on:
push:
branches: [ v2_release, v2_develop ]
paths-ignore:
- '**.md'
pull_request:
branches: [ v2_release, v2_develop ]
paths-ignore:
- '**.md'
jobs:
build_and_test:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
dotnet-quality: 'ga'
- name: Install dependencies
run: |
dotnet restore
- name: Build Debug
run: dotnet build --configuration Debug --no-restore
# See https://github.com/microsoft/vstest/issues/2952 for why the --blame stuff below is needed.
# Without it, the test runner crashes on ubuntu (but not Windows)/
- name: Test
run: |
sed -i 's/"stopOnFail": false/"stopOnFail": true/g' UnitTests/xunit.runner.json
dotnet test --verbosity normal --collect:"XPlat Code Coverage" --settings UnitTests/coverlet.runsettings --blame --diag:logs/logs.txt --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always
mv -v UnitTests/TestResults/*/*.* UnitTests/TestResults/
- name: Upload Test Logs
if: always()
uses: actions/upload-artifact@v4
with:
name: test-logs
path: |
logs/
uploads/
UnitTests/TestResults/
# Note: this step is currently not writing to the gist for some reason
# - name: Create Test Coverage Badge
# uses: simon-k/dotnet-code-coverage-badge@v1.0.0
# id: create_coverage_badge
# with:
# label: Unit Test Coverage
# color: brightgreen
# path: UnitTests/TestResults/coverage.opencover.xml
# gist-filename: code-coverage.json
# # https://gist.github.com/migueldeicaza/90ef67a684cb71db1817921a970f8d27
# gist-id: 90ef67a684cb71db1817921a970f8d27
# gist-auth-token: ${{ secrets.GIST_AUTH_TOKEN }}
# - name: Print Code Coverage
# run: |
# echo "Code coverage percentage: ${{steps.create_coverage_badge.outputs.percentage}}%"
# echo "Badge data: ${{steps.create_coverage_badge.outputs.badge}}"