Skip to content

Deploy Jekyll site to Pages #452

Deploy Jekyll site to Pages

Deploy Jekyll site to Pages #452

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll site to Pages
on:
push:
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Also run it every night, to update the index:
schedule:
- cron: "0 0 * * *"
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: write
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
CI_COMMIT_MESSAGE: Page Build Complete
CI_COMMIT_AUTHOR: GitHub Action
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
# https://github.com/ruby/setup-ruby/releases/tag/v1.207.0
uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4
with:
ruby-version: '3.1' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
# Set up and run the Awesome Indexer
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: 3.11
- name: Build the Awesome Index
run: uvx --from git+https://github.com/digipres/awesome-indexer@main awindex -c _awindex/config.yaml -o ./awesome-index
# Update a 'last modified' timestamp file:
- name: Update last-modified date
run: ./modified.sh
# Set up GitHub Pages:
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
# Build the Jekyll site:
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifacts for publishing
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v3
# Record the successful site build outcome by committing the timestamp file:
- name: Commit last-modified date
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "anjackson@users.noreply.github.com"
git add _data/awindex.yml
git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
git push
# 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