perf: add ClearChildren optimization for bulk child removal (#61) #308
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
| # 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: CD | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET 9 | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '9.0.x' | |
| - name: Setup .NET 10 | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Install WASM experimental workload | |
| run: dotnet workload install wasm-experimental wasm-tools | |
| - name: Install GitVersioning | |
| run: dotnet tool install --global nbgv | |
| - name: Set version | |
| id: version | |
| run: echo "::set-output name=VERSION::$(nbgv get-version -v AssemblyInformationalVersion)" | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Check for vulnerable packages (SCA) | |
| run: | | |
| echo "🔍 Scanning for vulnerable packages..." | |
| dotnet list package --vulnerable --include-transitive 2>&1 | tee vulnerability-report.txt | |
| if grep -qi "critical\|high" vulnerability-report.txt; then | |
| echo "⚠️ WARNING: Critical or High severity vulnerabilities detected!" | |
| echo "Please review the vulnerability report above and update dependencies." | |
| # For now, we warn but don't fail the build | |
| # Change to 'exit 1' to make this a hard failure | |
| else | |
| echo "✅ No critical or high severity vulnerabilities found" | |
| fi | |
| continue-on-error: true | |
| - name: Build | |
| run: dotnet build --no-restore | |
| - name: Test | |
| run: dotnet test Abies.Tests/Abies.Tests.csproj --no-build --verbosity normal | |
| - name: Pack Abies | |
| if: github.event_name != 'pull_request' | |
| run: dotnet pack ./Abies/Abies.csproj --configuration Release --output ./nupkg /p:PackageVersion=${{ steps.version.outputs.VERSION }} | |
| - name: Pack Abies.Templates | |
| if: github.event_name != 'pull_request' | |
| run: dotnet pack ./Abies.Templates/Abies.Templates.csproj --configuration Release --output ./nupkg /p:PackageVersion=${{ steps.version.outputs.VERSION }} | |
| - name: Publish to NuGet | |
| if: github.event_name != 'pull_request' | |
| run: dotnet nuget push ./nupkg/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate |