Skip to content

Support nested task logger scopes #23

Support nested task logger scopes

Support nested task logger scopes #23

Workflow file for this run

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