This is a Github Action which creates an orphan gh-pages branch and builds
your site into it, commit's and pushes it.
on: push
name: Create GH Pages
jobs:
createGhPages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Create GH Pages
uses: pkgjs/gh-pages@master
with:
nojekyll: true
repo: pkgjs/gh-pages
commit: pages build from ${GITHUB_SHA}
build: echo "<!DOCTYPE html><html><head></head><body><h1>Hello World!</h1><p>Built from ${GITHUB_SHA}</p></body></html>" > gh-pages/index.html
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}If you have not created a gh-pages branch yet, it will create one for you using git checkout --orphan. Once you
have the branch, it will checkout the commit you are building from and mount the branch into a directory, ./gh-pages
by default. It does this using git worktree add ./gh-pages gh-pages.
This means that any build steps you want to run just need to write into ./gh-pages and the action will take care of
committing and pushing that to the orphan branch. This allows the master branch to be the source, and not need built files
committed.
Github actions create a special secrets.GITHUB_TOKEN for you as the user who triggered the build, it is required that you
pass it into the action, but then it uses it to commit and push to the gh-pages branch.
If it all seems difficult, check out the source to clear things up: entrypoint.sh