From dbf055a719efb1ad952585d9a433c405ef2a9673 Mon Sep 17 00:00:00 2001 From: Nikolay Pianikov <nikolayp@mail.ru> Date: Fri, 8 Mar 2024 14:24:53 +0300 Subject: [PATCH] Publish Blazor example 2 --- .github/workflows/main.yml | 43 ++++++++++++++++--- .gitignore | 2 +- _config.yml | 2 + build/PublishBlazorTarget.cs | 16 +++---- .../BlazorWebAssemblyApp/wwwroot/index.html | 2 +- 5 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 _config.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1b312cf65..875913eb7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,18 @@ name: Pure.DI check -on: [ push ] +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write jobs: build: @@ -21,9 +33,28 @@ jobs: - name: Publish Blazor example run: dotnet run --project ./build -- publish - - name: Commit wwwroot to GitHub Pages - uses: JamesIves/github-pages-deploy-action@3.7.1 + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: root + source: ./root/wwwroot + destination: ./_site + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + # Deployment job + 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/.gitignore b/.gitignore index ec2c6cdd8..9854261a2 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ benchmarks/data/results/*.md _ReSharper.Caches/ .idea .logs - +root diff --git a/_config.yml b/_config.yml new file mode 100644 index 000000000..1cf296862 --- /dev/null +++ b/_config.yml @@ -0,0 +1,2 @@ +include: + - _framework diff --git a/build/PublishBlazorTarget.cs b/build/PublishBlazorTarget.cs index f5a9e2082..fafedd283 100644 --- a/build/PublishBlazorTarget.cs +++ b/build/PublishBlazorTarget.cs @@ -20,26 +20,24 @@ public Task InitializeAsync() => commands.Register( [SuppressMessage("Performance", "CA1861:Avoid constant arrays as arguments")] public async Task<int> RunAsync(CancellationToken cancellationToken) { + var wwwroot = Path.Combine("root", "wwwroot"); + if (Directory.Exists(wwwroot)) + { + Directory.Delete(wwwroot, true); + } + var result = await new DotNetPublish() .WithProject(Path.Combine("samples", "BlazorWebAssemblyApp", "BlazorWebAssemblyApp.csproj")) .WithConfiguration("Release") .WithOutput("root") .RunAsync(cancellationToken: cancellationToken); - - var wwwroot = Path.Combine("root", "wwwroot"); // Change the base-tag in index.html from '/' to 'BlazorWebAssemblyApp' to match GitHub Pages repository subdirectory var indexFile = Path.Combine(wwwroot, "index.html"); var indexContent = await File.ReadAllTextAsync(indexFile, cancellationToken); - indexContent = indexContent.Replace("""<base href="/" />""", """<base href="/BlazorWebAssemblyApp" />"""); + indexContent = indexContent.Replace("""<base href="/" />""", """<base href="/Pure.DI/" />"""); await File.WriteAllTextAsync(indexFile, indexContent, cancellationToken); - // Copy index.html to 404.html to serve the same file when a file is not found - File.Copy(indexFile, Path.Combine(wwwroot, "404.html")); - - // Add .nojekyll file to tell GitHub pages to not treat this as a Jekyll project. (Allow files and folders starting with an underscore) - await File.AppendAllTextAsync(Path.Combine(wwwroot, ".nojekyll"), "", cancellationToken); - return result ?? 1; } } \ No newline at end of file diff --git a/samples/BlazorWebAssemblyApp/wwwroot/index.html b/samples/BlazorWebAssemblyApp/wwwroot/index.html index d9f7633dc..ddd4ff90e 100644 --- a/samples/BlazorWebAssemblyApp/wwwroot/index.html +++ b/samples/BlazorWebAssemblyApp/wwwroot/index.html @@ -4,7 +4,7 @@ <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> - <title>BlazorWebAssemblyApp</title> + <title>Pure.DI Blazor WebAssembly App</title> <base href="/" /> <link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" /> <link href="css/app.css" rel="stylesheet" />