feat: YAML validation, NRE fix, Cookbook, llms updates (#7) #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: Release | |
| on: | |
| push: | |
| tags: ['v*'] | |
| permissions: | |
| contents: write | |
| packages: write | |
| id-token: write | |
| env: | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| DOTNET_NOLOGO: true | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| lfs: true | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Test | |
| run: dotnet test FlexRender.slnx -c Release | |
| publish-nuget: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| lfs: true | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Extract version from tag | |
| id: version | |
| run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT | |
| - name: Build | |
| run: dotnet build FlexRender.slnx -c Release -p:Version=${{ steps.version.outputs.VERSION }} | |
| - name: Pack NuGet packages | |
| run: | | |
| for project in \ | |
| src/FlexRender.Core/FlexRender.Core.csproj \ | |
| src/FlexRender.Yaml/FlexRender.Yaml.csproj \ | |
| src/FlexRender.Http/FlexRender.Http.csproj \ | |
| src/FlexRender.Skia.Render/FlexRender.Skia.Render.csproj \ | |
| src/FlexRender.ImageSharp.Render/FlexRender.ImageSharp.Render.csproj \ | |
| src/FlexRender.Svg.Render/FlexRender.Svg.Render.csproj \ | |
| src/FlexRender.QrCode.Skia.Render/FlexRender.QrCode.Skia.Render.csproj \ | |
| src/FlexRender.QrCode.ImageSharp.Render/FlexRender.QrCode.ImageSharp.Render.csproj \ | |
| src/FlexRender.QrCode.Svg.Render/FlexRender.QrCode.Svg.Render.csproj \ | |
| src/FlexRender.Barcode.Skia.Render/FlexRender.Barcode.Skia.Render.csproj \ | |
| src/FlexRender.Barcode.ImageSharp.Render/FlexRender.Barcode.ImageSharp.Render.csproj \ | |
| src/FlexRender.Barcode.Svg.Render/FlexRender.Barcode.Svg.Render.csproj \ | |
| src/FlexRender.SvgElement.Skia.Render/FlexRender.SvgElement.Skia.Render.csproj \ | |
| src/FlexRender.SvgElement.Svg.Render/FlexRender.SvgElement.Svg.Render.csproj \ | |
| src/FlexRender.HarfBuzz/FlexRender.HarfBuzz.csproj \ | |
| src/FlexRender.Skia/FlexRender.Skia.csproj \ | |
| src/FlexRender.ImageSharp/FlexRender.ImageSharp.csproj \ | |
| src/FlexRender.Svg/FlexRender.Svg.csproj \ | |
| src/FlexRender.QrCode/FlexRender.QrCode.csproj \ | |
| src/FlexRender.Barcode/FlexRender.Barcode.csproj \ | |
| src/FlexRender.SvgElement/FlexRender.SvgElement.csproj \ | |
| src/FlexRender.Content.Markdown/FlexRender.Content.Markdown.csproj \ | |
| src/FlexRender.Content.Html/FlexRender.Content.Html.csproj \ | |
| src/FlexRender.Content.Ndc/FlexRender.Content.Ndc.csproj \ | |
| src/FlexRender.DependencyInjection/FlexRender.DependencyInjection.csproj \ | |
| src/FlexRender.MetaPackage/FlexRender.MetaPackage.csproj; do | |
| dotnet pack "$project" \ | |
| --no-build --configuration Release \ | |
| -p:Version=${{ steps.version.outputs.VERSION }} \ | |
| --output ./artifacts | |
| done | |
| - name: Pack CLI tool | |
| run: | | |
| dotnet pack src/FlexRender.Cli/FlexRender.Cli.csproj \ | |
| --configuration Release \ | |
| -p:Version=${{ steps.version.outputs.VERSION }} \ | |
| --output ./artifacts | |
| - name: Login to NuGet with trusted publishing | |
| id: nuget-login | |
| uses: nuget/login@v1 | |
| with: | |
| user: ${{ secrets.NUGET_USER }} | |
| - name: Publish to NuGet.org | |
| run: | | |
| dotnet nuget push ./artifacts/*.nupkg \ | |
| --api-key "${{ steps.nuget-login.outputs.NUGET_API_KEY }}" \ | |
| --source https://api.nuget.org/v3/index.json \ | |
| --skip-duplicate | |
| - name: Upload NuGet packages | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nuget-packages | |
| path: ./artifacts/*.*nupkg | |
| build-native: | |
| needs: test | |
| strategy: | |
| matrix: | |
| include: | |
| - os: macos-latest | |
| rid: osx-arm64 | |
| archive: tar.gz | |
| - os: ubuntu-latest | |
| rid: linux-x64 | |
| archive: tar.gz | |
| - os: windows-latest | |
| rid: win-x64 | |
| archive: zip | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| lfs: true | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Extract version from tag | |
| id: version | |
| shell: bash | |
| run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT | |
| - name: Publish native AOT binary | |
| run: > | |
| dotnet publish src/FlexRender.Cli/FlexRender.Cli.csproj | |
| -c Release | |
| -f net10.0 | |
| -r ${{ matrix.rid }} | |
| /p:PublishAot=true | |
| -o ./publish | |
| - name: Archive (Unix) | |
| if: matrix.archive == 'tar.gz' | |
| working-directory: ./publish | |
| run: tar -czf ../flexrender-${{ steps.version.outputs.VERSION }}-${{ matrix.rid }}.tar.gz . | |
| - name: Archive (Windows) | |
| if: matrix.archive == 'zip' | |
| shell: pwsh | |
| run: Compress-Archive -Path ./publish/* -DestinationPath flexrender-${{ steps.version.outputs.VERSION }}-${{ matrix.rid }}.zip | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: native-${{ matrix.rid }} | |
| path: flexrender-*.* | |
| release: | |
| needs: [publish-nuget, build-native] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./release-assets | |
| merge-multiple: true | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true | |
| files: ./release-assets/* |