getnikola/nikola-action: a GitHub Action for building a Nikola site and deploying it to GitHub Pages.
This GitHub Action can build and deploy a Nikola website.
Current version: getnikola/nikola-action@v8
Full tutorial on the Nikola blog: Automating Nikola rebuilds with GitHub Actions
Short version:
- Create a repository with a Nikola site.
- Configure nikola github_deploy. Build and deploy your site locally first.
- Ensure the correct branch for deployment is set on GitHub (repository settings). Refer to this guide.
- Create a
.github/workflows/main.yml
file with the Sample Workflow.
on: [push]
jobs:
nikola_build:
runs-on: ubuntu-latest
name: 'Deploy Nikola to GitHub Pages'
steps:
- name: Check out
uses: actions/checkout@v2
- name: Build and Deploy Nikola
uses: getnikola/nikola-action@v4
with:
dry_run: false
dry_run
- if set totrue
only page build is performed, deploy is skipped
By default, the action will install the latest stable release of Nikola[extras]
. If you want to use the bleeding-edge version from master
, or want to install some extra dependencies, you can provide a requirements.txt
file in the repository.
The action will attempt to import conf
before installing Nikola or your requirements. If your conf.py
has any imports outside of stdlib, you need to wrap those with a try-except
block. For example, if you want to use filters, your conf.py
should have this:
try:
from nikola import filters
FILTERS = {
".html": [filters.typogrify],
".js": [filters.closure_compiler],
".jpg": ["jpegoptim --strip-all -m75 -v %s"],
}
except ImportError:
FILTERS = {}