Skip to content

Build and Deploy a Jekyll Site to GitHub Pages #7

Build and Deploy a Jekyll Site to GitHub Pages

Build and Deploy a Jekyll Site to GitHub Pages #7

# based on examples from:
# - https://github.com/actions/starter-workflows/blob/main/pages/jekyll-gh-pages.yml
# - https://www.moncefbelyamani.com/making-github-pages-work-with-latest-jekyll/
name: Build and Deploy a Jekyll Site to GitHub Pages
on:
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:
# jekyll:
# runs-on: ubuntu-latest
# steps:
# - name: 📂 Checkout
# uses: actions/checkout@v4
# # include the lines below if you are using jekyll-last-modified-at
# # or if you would otherwise need to fetch the full commit history
# # however this may be very slow for large repositories!
# # with:
# # fetch-depth: '0'
# - name: 💎 Setup Ruby
# uses: ruby/setup-ruby@v1
# with:
# ruby-version: '3.3'
# bundler-cache: true
# - name: 🔨 Install dependencies & build site
# uses: limjh16/jekyll-action-ts@v2
# with:
# enable_cache: true
# - name: 🚀 Deploy
# uses: peaceiris/actions-gh-pages@v4
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: ./_site
# # if the repo you are deploying to is <username>.github.io, uncomment the line below.
# # if you are including the line below, make sure your source files are NOT in the "main" branch:
# # publish_branch: main
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4