# This workflow will build a .NET project # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net name: Dotnet build and test on: workflow_dispatch: inputs: logLevel: description: 'Log level' required: true default: 'warning' type: choice options: - info - warning - debug tags: description: 'Test scenario tags' required: false type: boolean push: branches: [ "main" ] pull_request: branches: [ "main", "release/*" ] jobs: build: runs-on: docker container: image: pazof/yavsc-build-env:debian13-dotnet10-android36-jdk21-v1 steps: - name: Clone yavsc run: | set -e cd /src git clone https://forgejo.pschneider.fr/notazof/yavsc.git _src cd _src if [ -n "${GITHUB_REF:-}" ]; then git fetch origin "$GITHUB_REF" git checkout FETCH_HEAD fi git submodule update --init --recursive echo "✅ Checked out at $(git rev-parse HEAD) on $(git branch --show-current 2>/dev/null || echo detached HEAD)" - name: Secret scan run: | echo "🔍 Scanning for secrets..." cd /src/_src && dotnet tool restore && dotnet picket git --verbose --redact --exit-code 1 --log-opts -n10 \ - name: Build run: | echo "🏗️ Building the solution..." cd /src/_src && dotnet build --verbosity normal - name: Install SkiaSharp native dependencies run: | echo "📦 Installing libfontconfig/libfreetype for SkiaSharp (Avalonia.Headless)..." apt-get update && apt-get install -y --no-install-recommends \ libfontconfig1 libfreetype6 libexpat1 zlib1g libbz2-1.0 libpng16-16 libbrotli1 \ && rm -rf /var/lib/apt/lists/* - name: Test run: | echo "🚀 Lancement des tests..." cd /src/_src && dotnet test \ --verbosity normal \ --filter="Category!=Platform-Android"