GitHub Action
Build Jekyll for GitHub Pages
A simple GitHub Action for producing Jekyll build artifacts compatible with GitHub Pages.
This is used along with actions/deploy-pages
as part of the official support for building Pages with Actions (currently in public beta for public repositories).
A basic Pages deployment workflow with the jekyll-build-pages
action looks like this.
name: Build Jekyll site
on:
push:
branches: ["main"]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Build
uses: actions/jekyll-build-pages@v1
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
To write to a different destination directory, match the inputs of both the jekyll-build-pages
and upload-pages-artifact
actions.
steps:
- name: Build
uses: actions/jekyll-build-pages@v1
with:
destination: "./output"
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: "./output"
Input | Default | Description |
---|---|---|
source |
./ |
The directory to build from |
destination |
./_site |
The directory to write output into (this should match the path input of the actions/upload-pages-artifact action) |
future |
false |
If true , writes content dated in the future |
build_revision |
$GITHUB_SHA |
The SHA-1 of the Git commit for which the build is running |
verbose |
false |
If true , prints verbose output in logs |
token |
$GITHUB_TOKEN |
The GitHub token used to authenticate API requests |
In order to release a new version of this Action:
-
Locate the semantic version of the upcoming release (a draft is maintained by the
draft-release
workflow). -
Prepare a pull request to update
action.yml
to reference the incoming version -
Publish the draft release from the
main
branch with semantic version as the tag name, with the checkbox to publish to the GitHub Marketplace checked. ☑️ -
After publishing the release, the
release
workflow will automatically run to create/update the corresponding the major version tag such asv1
.⚠️ Environment approval is required. Check the Release workflow run list.
The scripts and documentation in this project are released under the MIT License.