Build Jekyll site, Deploy to Pages when on default branch #101
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Based on https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml | |
name: Build Jekyll site, Deploy to Pages when on default branch | |
env: | |
DOCS_DIR: docs | |
on: | |
# Run workflow on any branch push. | |
# Conditionals are used to only trigger deploy on the default branch. | |
push: | |
# Uncomment to only run on specific branch pushes. | |
# branches: ["master"] | |
# 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 per branch, skipping runs queued between the run in-progress and latest queued. | |
# However, do NOT cancel in-progress runs as we want to allow the deployments to complete. | |
concurrency: | |
group: "pages-${{ github.ref }}" | |
cancel-in-progress: false | |
jobs: | |
# Build job | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Build with Typedoc | |
run: npm i && npm run docs | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0 | |
with: | |
ruby-version: '3.2' # Not needed with a .ruby-version file | |
working-directory: ${{ env.DOCS_DIR }} | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
# cache-version: 0 # Increment this number if the cache gets corrupted and you need to force-update cached gems | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v4 | |
- name: Build with Jekyll | |
# Outputs to the './_site' directory by default | |
run: cd $DOCS_DIR && bundle install && bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" | |
env: | |
JEKYLL_ENV: production | |
- name: Upload artifact | |
if: github.ref == 'refs/heads/master' # Only upload when on default branch | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
# Default path is './_site'. | |
path: "./${{ env.DOCS_DIR }}/_site" | |
# Deployment job | |
deploy: | |
if: github.ref == 'refs/heads/master' # Only deploy when on default branch | |
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 |