name: Publish Terminal.Gui to nuget on: push: tags: - v* jobs: publish: name: build, pack & publish runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup dotnet uses: actions/setup-dotnet@v2 with: dotnet-version: 6.0.100 - name: minver-cli run: | dotnet tool install --global minver-cli --version 2.4.0 echo "MINVERVERSIONOVERRIDE=$(minver -t v -d rc)" >> $GITHUB_ENV #- name: Install dependencies # run: dotnet restore #- name: Build # run: dotnet build --configuration Release --no-restore #- name: Pack nuget package with symbols # run: dotnet pack --include-symbols - name: Publish Terminal.Gui id: publish_nuget uses: rohith/publish-nuget@v2 with: VERSION_STATIC: ${{ env.MINVERVERSIONOVERRIDE }} NUGET_SOURCE: https://api.nuget.org # Filepath of the project to be packaged, relative to root of repository PROJECT_FILE_PATH: Terminal.Gui/Terminal.Gui.csproj # NuGet package id, used for version detection & defaults to project name PACKAGE_NAME: Terminal.Gui # Filepath with version info, relative to root of repository & defaults to PROJECT_FILE_PATH #VERSION_FILE_PATH: Terminal.Gui/Directory.Build.props # Regex pattern to extract version info in a capturing group #VERSION_REGEX: ^\s*(.*)<\/Version>\s*$ # Useful with external providers like Nerdbank.GitVersioning, ignores VERSION_FILE_PATH & VERSION_REGEX # VERSION_STATIC: 1.0.0 # Flag to toggle git tagging, enabled by default TAG_COMMIT: false # Format of the git tag, [*] gets replaced with actual version # TAG_FORMAT: v* # API key to authenticate with NuGet server NUGET_KEY: ${{secrets.NUGET_API_KEY}} # NuGet server uri hosting the packages, defaults to https://api.nuget.org # NUGET_SOURCE: https://api.nuget.org # Flag to toggle pushing symbols along with nuget package to the server, disabled by default # This is broken - see https://github.com/brandedoutcast/publish-nuget/issues/30 INCLUDE_SYMBOLS: false - name: Test to generate Code Coverage Report run: | 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 # https://gist.github.com/migueldeicaza/90ef67a684cb71db1817921a970f8d27 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}}"