forked from github/pelican
Add theme, Python version, siteurl and feed_domain to GitHub Pages deployment workflow
Add theme, Python version, siteurl and feed_domain support to the
reusable GitHub Actions workflow for deploying a Pelican site to GitHub
Pages:
1. Add a new `theme` option to the workflow that callers can use to
specify an external theme to be checked out and used
2. Add a new `python` option to the workflow that callers can use to
specify the Python version, in case they need to build their site
with a particular version of Python
3. Pass `--extra-settings FEED_DOMAIN='"${{ steps.pages.outputs.base_url }}"'`
to the `pelican` command to set the value of Pelican's `FEED_DOMAIN`
setting for feed URLs.
4. Add a `feed_domain` input to the workflow so that users can override
the feed domain if they need to.
5. Add a `siteurl` input to the workflow so that users can override the
site URL if they need to.
6. Add a note to the docs about GitHub Pages generating http:// URLs for
https:// sites, and how to fix it
7. Some light editing of the docs for the workflow
This commit is contained in:
parent
5c7e4bbac4
commit
e46595cdac
2 changed files with 100 additions and 31 deletions
43
.github/workflows/github_pages.yml
vendored
43
.github/workflows/github_pages.yml
vendored
|
|
@ -17,6 +17,26 @@ on:
|
|||
default: "output/"
|
||||
description: "Where to output the generated files (`pelican`'s `--output` option)"
|
||||
type: string
|
||||
theme:
|
||||
required: false
|
||||
default: ""
|
||||
description: "The GitHub repo URL of a custom theme to use, for example: 'https://github.com/seanh/sidecar.git'"
|
||||
type: string
|
||||
python:
|
||||
required: false
|
||||
default: "3.12"
|
||||
description: "The version of Python to use, for example: '3.12' (to use the most recent version of Python 3.12, this is faster) or '3.12.1' (to use an exact version, slower)"
|
||||
type: string
|
||||
siteurl:
|
||||
required: false
|
||||
default: ""
|
||||
description: "The base URL of your web site (Pelican's SITEURL setting). If not passed this will default to the URL of your GitHub Pages site, which is correct in most cases."
|
||||
type: string
|
||||
feed_domain:
|
||||
required: false
|
||||
default: ""
|
||||
description: "The domain to be prepended to feed URLs (Pelican's FEED_DOMAIN setting). If not passed this will default to the URL of your GitHub Pages site, which is correct in most cases."
|
||||
type: string
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
|
|
@ -33,18 +53,31 @@ jobs:
|
|||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: ${{ inputs.python }}
|
||||
- name: Checkout theme
|
||||
if: ${{ inputs.theme }}
|
||||
run: git clone '${{ inputs.theme }}' .theme
|
||||
- name: Configure GitHub Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Install requirements
|
||||
run: pip install ${{ inputs.requirements }}
|
||||
- name: Build Pelican site
|
||||
shell: python
|
||||
run: |
|
||||
pelican \
|
||||
--settings "${{ inputs.settings }}" \
|
||||
--extra-settings SITEURL='"${{ steps.pages.outputs.base_url }}"' \
|
||||
--output "${{ inputs.output-path }}"
|
||||
import subprocess
|
||||
|
||||
cmd = "pelican"
|
||||
cmd += " --settings ${{ inputs.settings }}"
|
||||
cmd += " --extra-settings"
|
||||
cmd += """ SITEURL='"${{ inputs.siteurl || steps.pages.outputs.base_url }}"'"""
|
||||
cmd += """ FEED_DOMAIN='"${{ inputs.feed_domain || steps.pages.outputs.base_url }}"'"""
|
||||
cmd += " --output ${{ inputs.output-path }}"
|
||||
|
||||
if "${{ inputs.theme }}":
|
||||
cmd += " --theme-path .theme"
|
||||
|
||||
subprocess.run(cmd, shell=True, check=True)
|
||||
- name: Fix permissions
|
||||
run: |
|
||||
chmod -c -R +rX "${{ inputs.output-path }}" | while read line; do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue