name: Release on: release: types: [published] jobs: pack-and-publish: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Set version from tag id: version run: | TAG="${GITHUB_REF_NAME#v}" echo "PACKAGE_VERSION=$TAG" >> $GITHUB_OUTPUT - name: Replace ProjectReference with PackageReference run: | sed -i "s###" ReleaseUpdater/ReleaseUpdater.csproj - name: Build and Pack projects run: | mkdir -p artifacts for proj in $PROJECTS; do echo "Restoring $proj..." dotnet restore $proj echo "Building $proj..." dotnet build $proj -c Release -p:Version=${{ steps.version.outputs.PACKAGE_VERSION }} echo "Packing $proj..." dotnet pack $proj -c Release --no-build -p:PackageVersion=${{ steps.version.outputs.PACKAGE_VERSION }} -o ./artifacts done env: PROJECTS: | ReleaseUpdater.Common ReleaseUpdater - name: Upload package artifact uses: actions/upload-artifact@v3 with: name: nuget-packages path: artifacts/*.nupkg - name: Publish to NuGet env: NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} run: dotnet nuget push ./artifacts/*.nupkg --source https://git.frigat.duckdns.org/api/packages/FrigaT/nuget/index.json --api-key $NUGET_API_KEY --skip-duplicate