Support nested task logger scopes #23
Workflow file for this run
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 NuGet Packages | |
| on: | |
| push: | |
| tags: | |
| - "v*.*.*" | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-test-pack-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Get version from tag | |
| id: get_version | |
| shell: bash | |
| run: | | |
| release_tag="${GITHUB_REF_NAME}" | |
| release_version="${release_tag#v}" | |
| if [ "$release_tag" = "$release_version" ]; then | |
| echo "Release tag must start with 'v'." >&2 | |
| exit 1 | |
| fi | |
| echo "release_tag=$release_tag" >> "$GITHUB_OUTPUT" | |
| echo "release_version=$release_version" >> "$GITHUB_OUTPUT" | |
| echo "Release tag: $release_tag" | |
| echo "Release version: $release_version" | |
| - name: Restore | |
| working-directory: dotNet | |
| run: dotnet restore TaskLogging.sln | |
| env: | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
| - name: Build | |
| working-directory: dotNet | |
| run: dotnet build --no-restore -c Release TaskLogging.sln -p:Version=${{ steps.get_version.outputs.release_version }} | |
| env: | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
| - name: Test | |
| working-directory: dotNet | |
| run: dotnet test TaskLogging.sln --no-build -c Release | |
| env: | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
| - name: Pack NuGet packages | |
| working-directory: dotNet | |
| shell: bash | |
| run: | | |
| packages=( | |
| CoreHelpers.TaskLogging.Abstractions | |
| CoreHelpers.TaskLogging | |
| CoreHelpers.TaskLogging.Maintenance.Abstractions | |
| CoreHelpers.TaskLogging.Maintenance | |
| CoreHelpers.Extensions.Logging.Tasks | |
| CoreHelpers.Extensions.Logging.DurableTask | |
| ) | |
| for package in "${packages[@]}"; do | |
| dotnet pack "./$package" \ | |
| --configuration Release \ | |
| --no-build \ | |
| -p:PackageVersion=${{ steps.get_version.outputs.release_version }} \ | |
| --output . | |
| done | |
| - name: Upload workflow artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nuget-packages | |
| path: dotNet/*.nupkg | |
| if-no-files-found: error | |
| - name: Create GitHub release and upload packages | |
| shell: bash | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| release_tag="${{ steps.get_version.outputs.release_tag }}" | |
| if gh release view "$release_tag" > /dev/null 2>&1; then | |
| gh release upload "$release_tag" ./dotNet/*.nupkg --clobber | |
| else | |
| gh release create "$release_tag" ./dotNet/*.nupkg \ | |
| --title "$release_tag" \ | |
| --generate-notes \ | |
| --verify-tag | |
| fi | |
| publish-nuget: | |
| runs-on: ubuntu-latest | |
| needs: build-test-pack-release | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Download NuGet packages | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: nuget-packages | |
| path: packages | |
| - name: NuGet login | |
| id: nuget_login | |
| uses: NuGet/login@v1 | |
| with: | |
| user: ${{ secrets.NUGET_USER }} | |
| - name: Publish NuGet packages | |
| run: dotnet nuget push packages/*.nupkg --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --source https://api.nuget.org/v3/index.json --skip-duplicate |