Add "Renderer Backends" documentation and integrate ESC/POS backend d… #61
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: read | |
| id-token: write | |
| env: | |
| DOTNET_VERSION: 10.0.x | |
| CONFIGURATION: Release | |
| SOLUTION_FILE: X39.Solutions.PdfTemplate.sln | |
| PACKAGE_OUTPUT_DIRECTORY: artifacts/packages | |
| NUGET_SOURCE: https://api.nuget.org/v3/index.json | |
| jobs: | |
| publish: | |
| name: Build, pack, and publish | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ env.DOTNET_VERSION }} | |
| - name: Derive package version | |
| shell: bash | |
| run: | | |
| package_version="${GITHUB_REF_NAME#v}" | |
| if [ "$package_version" = "$GITHUB_REF_NAME" ]; then | |
| echo "Release tags must start with 'v'." >&2 | |
| exit 1 | |
| fi | |
| semver_pattern='^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$' | |
| if [[ ! "$package_version" =~ $semver_pattern ]]; then | |
| echo "Tag '$GITHUB_REF_NAME' does not contain a valid SemVer package version." >&2 | |
| exit 1 | |
| fi | |
| echo "PACKAGE_VERSION=$package_version" >> "$GITHUB_ENV" | |
| - name: Restore dependencies | |
| run: dotnet restore "$SOLUTION_FILE" | |
| - name: Build | |
| run: dotnet build "$SOLUTION_FILE" --configuration "$CONFIGURATION" --no-restore /p:ContinuousIntegrationBuild=true | |
| - name: Pack source projects | |
| shell: bash | |
| run: | | |
| mkdir -p "$PACKAGE_OUTPUT_DIRECTORY" | |
| mapfile -t projects < <(find source -mindepth 2 -maxdepth 2 -name "*.csproj" | sort) | |
| if [ "${#projects[@]}" -eq 0 ]; then | |
| echo "No source projects found to pack." >&2 | |
| exit 1 | |
| fi | |
| for project in "${projects[@]}"; do | |
| dotnet pack "$project" \ | |
| --configuration "$CONFIGURATION" \ | |
| --no-build \ | |
| --output "$PACKAGE_OUTPUT_DIRECTORY" \ | |
| /p:PackageVersion="$PACKAGE_VERSION" \ | |
| /p:ContinuousIntegrationBuild=true | |
| done | |
| - name: Upload package artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nuget-packages-${{ github.ref_name }} | |
| path: | | |
| ${{ env.PACKAGE_OUTPUT_DIRECTORY }}/*.nupkg | |
| ${{ env.PACKAGE_OUTPUT_DIRECTORY }}/*.snupkg | |
| if-no-files-found: error | |
| - name: NuGet login | |
| id: nuget_login | |
| uses: NuGet/login@v1 | |
| with: | |
| user: ${{ secrets.NUGET_USER }} | |
| - name: Publish X39.Solutions.Papercraft.Core | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.Papercraft.Core.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate | |
| - name: Publish X39.Solutions.Papercraft.Rendering.SkiaSharp | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.Papercraft.Rendering.SkiaSharp.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate | |
| - name: Publish X39.Solutions.Papercraft.Controls.QrCode | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.Papercraft.Controls.QrCode.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate | |
| - name: Publish X39.Solutions.Papercraft.Controls.ZXing | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.Papercraft.Controls.ZXing.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate | |
| - name: Publish X39.Solutions.Papercraft | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.Papercraft.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate | |
| - name: Publish X39.Solutions.PdfTemplate | |
| run: dotnet nuget push "$PACKAGE_OUTPUT_DIRECTORY"/X39.Solutions.PdfTemplate.[0-9]*.nupkg --source "$NUGET_SOURCE" --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}" --skip-duplicate |