Skip to content

feat: YAML validation, NRE fix, Cookbook, llms updates (#7) #23

feat: YAML validation, NRE fix, Cookbook, llms updates (#7)

feat: YAML validation, NRE fix, Cookbook, llms updates (#7) #23

Workflow file for this run

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/*