diff --git a/.github/workflows/preview-pages.yml b/.github/workflows/preview-pages.yml
new file mode 100644
index 0000000..028b40c
--- /dev/null
+++ b/.github/workflows/preview-pages.yml
@@ -0,0 +1,60 @@
+# Deploy ShellUI Preview to GitHub Pages (for docs embedding)
+name: Deploy Preview to GitHub Pages
+
+on:
+ push:
+ branches: [ main ]
+ paths:
+ - 'NET9/ShellUI.Preview/**'
+ - 'src/ShellUI.Components/**'
+ - '.github/workflows/preview-pages.yml'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '9.0.x'
+
+ - name: Publish Preview (Blazor WASM)
+ run: |
+ dotnet publish NET9/ShellUI.Preview/ShellUI.Preview.csproj \
+ -c Release \
+ -o ./preview-publish
+ env:
+ # For GH Pages: base href = /repo-name/ (set your repo name)
+ # Leave empty for root: https://user.github.io/repo-name/
+ BASE_HREF: /
+
+ - name: Setup Pages
+ uses: actions/configure-pages@v4
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./preview-publish/wwwroot
+
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 6b47a8c..35d2f36 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -51,6 +51,10 @@ jobs:
if ls src/ShellUI.CLI/bin/Release/*.snupkg 1> /dev/null 2>&1; then
dotnet nuget push src/ShellUI.CLI/bin/Release/*.snupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
fi
+ dotnet nuget push src/ShellUI.Core/bin/Release/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
+ if ls src/ShellUI.Core/bin/Release/*.snupkg 1> /dev/null 2>&1; then
+ dotnet nuget push src/ShellUI.Core/bin/Release/*.snupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
+ fi
dotnet nuget push src/ShellUI.Components/bin/Release/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
if ls src/ShellUI.Components/bin/Release/*.snupkg 1> /dev/null 2>&1; then
dotnet nuget push src/ShellUI.Components/bin/Release/*.snupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
@@ -69,6 +73,7 @@ jobs:
prerelease: ${{ contains(github.ref, '-') }}
files: |
src/ShellUI.CLI/bin/Release/*.nupkg
+ src/ShellUI.Core/bin/Release/*.nupkg
src/ShellUI.Components/bin/Release/*.nupkg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 77b4d6c..2f88ab7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -362,4 +362,7 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd
-shellui-installation-tests/
\ No newline at end of file
+shellui-installation-tests/
+
+# Preview publish output (testing artifacts)
+preview-publish/
\ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
index bcf00a9..3718fa6 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -3,7 +3,7 @@