name: Release on: release: types: [published] jobs: package: runs-on: ubuntu-latest strategy: matrix: project: [ArgumentsToolkit, ArgumentsToolkit.Core, ArgumentsToolkit.Help, ArgumentsToolkit.Validation] 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: Restore ${{ matrix.project }} run: dotnet restore ${{ matrix.project }} - name: Build ${{ matrix.project }} run: dotnet build ${{ matrix.project }} -c Release -p:Version=${{ steps.version.outputs.PACKAGE_VERSION }} - name: Pack ${{ matrix.project }} run: dotnet pack ${{ matrix.project }} -c Release --no-build -p:PackageVersion=${{ steps.version.outputs.PACKAGE_VERSION }} -o ./artifacts - name: Upload package artifacts uses: actions/upload-artifact@v3 with: name: nuget-packages path: artifacts/*.nupkg publish: runs-on: ubuntu-latest needs: pack-and-publish steps: - name: Download artifacts uses: actions/download-artifact@v3 with: name: nuget-packages path: ./artifacts - 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