Update .gitea/workflows/dotnet-test.yml
Some checks failed
CI Demo / build (push) Successful in 3s
Docker Test / docker-ops (push) Successful in 5s
.NET Test / dotnet-test (push) Failing after 30s
Go Test / go-test (push) Failing after 5s
Java Test / java-hello (push) Successful in 31s
Julia Test / julia-test (push) Failing after 5s
Kotlin Test / kotlin-hello (push) Successful in 36s
Node.js Test / nodejs-test (push) Failing after 6s
Notebook Test / nb-test (push) Failing after 1m9s
PHP Test / php-test (push) Successful in 36s
Python Test / python-hello (push) Successful in 3s
R Test / r-cmdcheck (push) Failing after 17m2s
Rust Test / rust-test (push) Failing after 31s
Scala Test / scala-test (push) Failing after 6m33s
Swift Test / swift-hello (push) Successful in 46s

This commit is contained in:
2025-08-07 19:22:37 +00:00
parent 5b28d91c84
commit 7128380954

View File

@@ -4,20 +4,56 @@ on: [push]
jobs:
dotnet-test:
runs-on: ubuntu-latest
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up .NET
uses: actions/setup-dotnet@v2
uses: actions/setup-dotnet@v4
with:
dotnet-version: '7.0.x'
dotnet-version: '8.0.x' # or '7.0.x' if you prefer
- name: Restore packages
run: dotnet restore
- name: Detect & build/test
shell: bash
run: |
has_solution=false
# Find any .sln or .csproj
if find . -maxdepth 2 -name '*.sln' -o -name '*.csproj' | grep -q .; then
has_solution=true
fi
- name: Build
run: dotnet build --no-restore --configuration Release
if $has_solution; then
echo "Detected .NET project; restoring/building/testing..."
dotnet restore
dotnet build --no-restore -c Release
# Run tests if there are any test projects; otherwise just succeed after build
if find . -name '*Tests.csproj' -o -name '*.csproj' -exec grep -l '<IsTestProject>true</IsTestProject>' {} + | grep -q .; then
dotnet test --no-build -c Release --verbosity normal
else
echo "No test projects found; build succeeded, skipping tests."
fi
else
echo "No .NET project found; creating a tiny solution for a smoke test."
dotnet new sln -n HelloCI
dotnet new console -o src/App -n App
dotnet new xunit -o tests/App.Tests -n App.Tests
dotnet sln HelloCI.sln add src/App/App.csproj tests/App.Tests/App.Tests.csproj
dotnet add tests/App.Tests/App.Tests.csproj reference src/App/App.csproj
- name: Test
run: dotnet test --no-build --verbosity normal
cat > tests/App.Tests/UnitTest1.cs <<'EOF'
using Xunit;
namespace App.Tests;
public class UnitTest1
{
[Fact] public void Adds() => Assert.Equal(4, 2+2);
}
EOF
dotnet restore
dotnet build -c Release
dotnet test -c Release --no-build --verbosity normal
fi