chore: bump version to 2.0.0 #30
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
| name: CI | |
| on: | |
| push: | |
| branches: [ main, develop, feature/* ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Test on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-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 | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| - name: Run tests with coverage | |
| run: dotnet test FileCombiner.Tests/FileCombiner.Tests.csproj /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=../coverage.cobertura.xml --configuration Release --verbosity quiet | |
| - name: List coverage files (debug) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| echo "Searching for coverage files..." | |
| ls -la *.xml || echo "No XML files found" | |
| echo "=== Coverage file content (first 50 lines) ===" | |
| head -50 coverage.cobertura.xml || echo "Cannot read coverage.cobertura.xml" | |
| echo "=== Coverage file stats ===" | |
| grep -E 'line-rate|branch-rate|lines-covered|lines-valid' coverage.cobertura.xml | head -5 || echo "Cannot parse coverage stats" | |
| - name: Upload coverage reports to Codecov | |
| if: matrix.os == 'ubuntu-latest' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage.cobertura.xml | |
| flags: unittests | |
| fail_ci_if_error: false | |
| verbose: true | |
| build: | |
| name: Build Release Artifacts | |
| runs-on: windows-latest | |
| needs: test | |
| if: github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Publish Windows x64 | |
| run: dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false -o ./artifacts/win-x64 | |
| - name: Upload Windows artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: filecombiner-win-x64 | |
| path: ./artifacts/win-x64/filecombiner.exe | |
| retention-days: 30 |