chore: release 0.3.0-rc.1 — drop dead refs, ship 2 NuGet packages, ho… #48
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: CI | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache NuGet packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nuget/packages | |
| key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/packages.lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nuget- | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: | | |
| 9.0.x | |
| - name: Restore dependencies | |
| run: dotnet restore ShellUI.sln | |
| - name: Build | |
| run: dotnet build ShellUI.sln --no-restore --configuration Release | |
| - name: Run tests | |
| run: dotnet test ShellUI.sln --no-restore --no-build --configuration Release --verbosity normal | |
| # End-to-end build of a scaffolded project — catches anything the in-process | |
| # TemplateCompileTests miss (missing usings, dependency resolution). | |
| - name: Smoke-test CLI scaffolding | |
| shell: bash | |
| run: | | |
| set -euxo pipefail | |
| TMPDIR=$(mktemp -d) | |
| dotnet pack src/ShellUI.CLI/ShellUI.CLI.csproj -c Release -o "$TMPDIR/nupkgs" --no-build | |
| dotnet tool install --tool-path "$TMPDIR/tools" --add-source "$TMPDIR/nupkgs" ShellUI.CLI --prerelease | |
| export PATH="$TMPDIR/tools:$PATH" | |
| mkdir -p "$TMPDIR/app" && cd "$TMPDIR/app" | |
| dotnet new blazor -o SmokeApp --no-restore | |
| cd SmokeApp | |
| shellui init --tailwind standalone --yes | |
| # Assert init produced a working host: App.razor patched with render mode, | |
| # theme bootstrap, and shellui.js script tag. | |
| grep -q 'HeadOutlet @rendermode="InteractiveServer"' Components/App.razor || (echo "init did not patch HeadOutlet @rendermode"; exit 1) | |
| grep -q 'Routes @rendermode="InteractiveServer"' Components/App.razor || (echo "init did not patch Routes @rendermode"; exit 1) | |
| grep -q 'ShellUI theme bootstrap' Components/App.razor || (echo "init did not inject theme bootstrap"; exit 1) | |
| grep -q '<script src="shellui.js"></script>' Components/App.razor || (echo "init did not inject shellui.js script tag"; exit 1) | |
| grep -q 'shellui-sidebar.js' Components/App.razor && (echo "init incorrectly injected shellui-sidebar.js script tag (sidebar JS is dynamically imported)"; exit 1) || true | |
| # Assert input.css has the full theme, not just @import "tailwindcss"; | |
| grep -q '@theme inline' wwwroot/input.css || (echo "init did not write full theme to input.css"; exit 1) | |
| grep -q ':root' wwwroot/input.css || (echo "init did not write :root variables to input.css"; exit 1) | |
| grep -q '\.dark' wwwroot/input.css || (echo "init did not write .dark variables to input.css"; exit 1) | |
| shellui add chart pie-chart dashboard-02 data-table --force | |
| # NuGet dependencies (Blazor-ApexCharts, System.Linq.Dynamic.Core) should | |
| # now be added automatically by `shellui add`. Assert they appear in the | |
| # project file so a regression in the auto-install fails loudly here. | |
| grep -q 'Blazor-ApexCharts' SmokeApp.csproj || (echo "shellui add chart did not add Blazor-ApexCharts NuGet dep"; exit 1) | |
| grep -q 'System.Linq.Dynamic.Core' SmokeApp.csproj || (echo "shellui add data-table did not add System.Linq.Dynamic.Core NuGet dep"; exit 1) | |
| # And the DataTable models file must land at Components/UI/Models/, not be missing. | |
| test -f Components/UI/Models/DataTableModels.cs || (echo "shellui add data-table did not install data-table-models"; exit 1) | |
| # chart-styles ships the CSS for the custom tooltip + ApexCharts chrome. | |
| # Without it, hovering a chart shows invisible white-on-white text. | |
| test -f wwwroot/css/charts.css || (echo "shellui add chart did not install chart-styles CSS"; exit 1) | |
| grep -q '<link href="css/charts.css"' Components/App.razor || (echo "shellui add chart did not link charts.css in App.razor"; exit 1) | |
| dotnet build -c Debug | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: nuget-packages | |
| path: | | |
| **/*.nupkg | |
| **/*.snupkg |