GitHub Pages doesn’t support pushing the www
folder from the main branch by default. You can do that, however, using GitHub Actions.
.github/workflows/static.yml
file.# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
# 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
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: $
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload www directory
path: './www'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Note that this is for fully static sites. This will not run Jekyll and will not convert markdown files to html.
Write by Joel Dare on July 17, 2024 and last updated on March 17, 2025.
Get a monthly digest of what I'm up to.