I finally got around to porting this blog over to a static website. After several years running on Orchard, followed by many more on MiniBlog, I'd been looking for a simpler experience for some time, in the hope that a simpler experience would encourage me to blog more. I came across Wyam a while back, and followed its evolution into Statiq Web, and finally took the time to port things over.
When it came to running it on GitHub Pages, it seemed like some things had changed on GitHub pages in deploying with GitHub actions, compared to the steps described in the docs. Specifically, I was getting rate limit exceeded exceptions, and secondary rate limit exceptions that looked to actually be forbidden exceptions. Here's a chronicle of the steps I took to get everything running smoothly.
First up, I went to Settings > Pages in the GitHub repository, and chose GitHub actions as the Build and deployment source
This stops the default classic GitHub pages experience from using a default pages build and deployment
workflow
to try to build and deploy your site.
Next up, I configured a GitHub actions workflow to build and deploy the Statiq Web app, committing
the following workflow yml file to the repository at .github/workflows/publish.yml
name: Statiq Web Deploy
# Controls when the workflow will run
on:
# Triggers the workflow on push but only for the "main" branch
push:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
DOTNET_VERSION: '6.0.x'
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup GitHub Pages
uses: actions/configure-pages@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Build Website
run: dotnet run
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
# Upload output only
path: './output'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
Upon pushing to the main branch, everything built and was uploaded successfully to GitHub pages :)