Fixes #4677 - Refactors DimAuto for less coupling and improves perf…
#78
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: Publish Terminal.Gui to Nuget | |
| on: | |
| push: | |
| branches: [ v2_release, v2_develop ] | |
| tags: | |
| - v* | |
| paths-ignore: | |
| - '**.md' | |
| jobs: | |
| publish: | |
| name: Build and Publish to Nuget.org | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout ${{ github.ref_name }} | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # fetch-depth is needed for GitVersion https://github.com/GitTools/actions/blob/main/docs/cloning.md | |
| - name: Install GitVersion | |
| uses: gittools/actions/gitversion/setup@v3.1.11 | |
| with: | |
| versionSpec: '6.0.x' | |
| - name: Determine Version | |
| uses: gittools/actions/gitversion/execute@v3.1.11 | |
| with: | |
| useConfigFile: true | |
| updateAssemblyInfo: true | |
| id: gitversion # step id used as reference for output values | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 10.x | |
| dotnet-quality: 'ga' | |
| - name: Build Release Terminal.Gui | |
| run: dotnet build Terminal.Gui/Terminal.Gui.csproj --no-incremental --nologo --force --configuration Release | |
| - name: Pack Release Terminal.Gui ${{ steps.gitversion.outputs.SemVer }} for Nuget | |
| run: dotnet pack Terminal.Gui/Terminal.Gui.csproj -c Release --include-symbols -p:Version='${{ steps.gitversion.outputs.SemVer }}' | |
| # - name: Test to generate Code Coverage Report | |
| # 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 | |
| # mv -v UnitTests/TestResults/*/*.* UnitTests/TestResults/ | |
| # - 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 | |
| # 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}}" | |
| - name: Publish Terminal.Gui.${{ steps.gitversion.outputs.SemVer }} to NuGet.org | |
| run: dotnet nuget push Terminal.Gui/bin/Release/Terminal.Gui.${{ steps.gitversion.outputs.SemVer }}.nupkg --skip-duplicate --api-key ${{ secrets.NUGET_API_KEY }} | |
| # - name: Delist old NuGet packages | |
| # if: github.ref == 'refs/heads/v2_release' | |
| # shell: pwsh | |
| # run: | | |
| # $version = "${{ steps.gitversion.outputs.SemVer }}" | |
| # Write-Host "Running delist script for just-published version: $version" | |
| # ./Scripts/delist-nuget.ps1 -ApiKey "${{ secrets.NUGET_API_KEY }}" -JustPublishedVersion "$version" | |
| - name: Prepare payload for template dispatch | |
| if: github.ref == 'refs/heads/v2_release' | |
| id: payload | |
| run: | | |
| echo "json={\"version\":\"${{ steps.gitversion.outputs.SemVer }}\"}" >> $GITHUB_OUTPUT | |
| - name: Trigger Terminal.Gui.templates update | |
| if: github.ref == 'refs/heads/v2_release' | |
| uses: peter-evans/repository-dispatch@v3 | |
| with: | |
| token: ${{ secrets.TEMPLATE_REPO_TOKEN }} | |
| repository: gui-cs/Terminal.Gui.templates | |
| event-type: terminal-gui-v2-released | |
| client-payload: ${{ steps.payload.outputs.json }} |