Skip to content

GitHub Pages #3

GitHub Pages

GitHub Pages #3

Workflow file for this run

---
name: GitHub Pages
on:
push:
branches: ["main"]
paths: ["website"]
workflow_dispatch: {}
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:
build:
runs-on: ubuntu-latest
steps:
- name: Generate Token
uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
id: app-token
with:
app-id: "${{ secrets.BOT_APP_ID }}"
private-key: "${{ secrets.BOT_APP_PRIVATE_KEY }}"
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
token: "${{ steps.app-token.outputs.token }}"
- name: Install jekyll and bundler
run: sudo gem install bundler jekyll
- name: Show bundler version
run: bundler --version
- name: Show jekyll version
run: jekyll --version
- name: Install gems
run: sudo bundle install --gemfile=website/Gemfile
- name: Run jekyll build
working-directory: ./website
run: bundle exec jekyll build --trace
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./website/_site
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Generate Token
uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
id: app-token
with:
app-id: "${{ secrets.BOT_APP_ID }}"
private-key: "${{ secrets.BOT_APP_PRIVATE_KEY }}"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
token: "${{ steps.app-token.outputs.token }}"