Skip to content

Merge pull request #1 from matt-goldman/add-pages-workflow #1

Merge pull request #1 from matt-goldman/add-pages-workflow

Merge pull request #1 from matt-goldman/add-pages-workflow #1

Workflow file for this run

name: Deploy to GitHub Pages
# Adapted from: https://github.com/TenaciousDev/BlazorGitHubPagesDemo
# Run workflow on every push to the main branch
on:
push:
branches: [main]
jobs:
deploy-to-github-pages:
# use ubuntu-latest image to run steps on
runs-on: ubuntu-latest
steps:
# uses GitHub's checkout action to checkout code from the main branch
- uses: actions/checkout@v4
# sets up .NET SDK 9.0.x
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
# installs the Blake CLI
- name: Install Blake CLI
run: dotnet tool install -g Blake.CLI
# bake static content
- name: Run blake bake
run: blake bake
# publishes the Blake static site to the release folder
- name: Publish .NET Project
run: dotnet publish -c Release -o release --nologo
# changes the base-tag in index.html from '/' to the repository name to match GitHub Pages repository subdirectory
# This is now generic and works for any repository.
- name: Change base-tag in index.html from / to repository name
run: |
REPO_NAME="${{ github.event.repository.name }}"
sed -i "s|<base href=\"/\" />|<base href=\"/${REPO_NAME}/\" />|g" release/wwwroot/index.html
# copy index.html to 404.html to serve the same file when a file is not found
- name: copy index.html to 404.html
run: cp release/wwwroot/index.html release/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)
- name: Add .nojekyll file
run: touch release/wwwroot/.nojekyll
# publishes wwwroot directory to GitHub Pages
- name: Commit wwwroot to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages # The branch the action should deploy to.
folder: release/wwwroot # The folder the action should deploy.