Create chapter 2 content #104
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
name: "Rebuild and deploy PR and diff versions of a website to gh-pages branch" | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
paths: | |
- 'textbook/**' | |
branches: | |
- 'main' | |
jobs: | |
deploy-pr-preview: | |
runs-on: ubuntu-latest | |
env: | |
URL: ${{ secrets.OPENAI_PROXY_URL }} | |
permissions: | |
contents: write | |
packages: write | |
pull-requests: write | |
steps: | |
# Checkout a copy of the repository on the PR branch | |
- name: Checkout the PR version of the website repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: '0' | |
ref: ${{ github.head_ref }} | |
- name: Setup the environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: environment.yaml | |
init-shell: bash | |
cache-environment: true | |
post-cleanup: none | |
- name: Build the PR version of the website | |
run: quarto render textbook | |
shell: bash -el {0} # Required to see the mamba init env | |
# Push the PR version of the website to the gh-pages branch | |
# the PR version will be stored in a folder named pull### (where ### is the PR number) | |
- name: Push the PR version of the website to gh-pages branch | |
uses: peaceiris/actions-gh-pages@v3.8.0 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./textbook/_book | |
keep_files: true | |
destination_dir: pull${{ github.event.number }} | |
# Now that the website was built and pushed to gh-pages, checkout the gh-pages branch | |
- name: Checkout the gh-pages branch | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: '0' | |
ref: 'gh-pages' | |
# Compute the diff of the new PR website (which is stored in the pull### folder) | |
# Store the diff version of the website in a folder named diff### (where ### is the PR number) | |
- name: Run website diff to compare the old site to the PR version | |
run: | | |
rustup update | |
pip install --upgrade pip | |
python -m pip install https://github.com/joelostblom/website_diff/archive/jquery-waitload-nohighlight.zip | |
rm -rf diff${{ github.event.number }} | |
website_diff --old . --new pull${{ github.event.number }} --diff diff${{ github.event.number }} | |
# Push the diff version of the website to the gh-pages branch | |
# the diff version will be stored in a folder named diff### (where ### is the PR number) | |
- name: Push the diff version of the website to the gh-pages branch | |
uses: peaceiris/actions-gh-pages@v4 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: diff${{ github.event.number }} | |
keep_files: true | |
destination_dir: diff${{ github.event.number }} | |
# Post a message on the PR thread with links to the PR preview, the diff, the base version, and the production version of the website | |
- name: Post PR preview, diff, and current main URLS to PR thread | |
uses: mshick/add-pr-comment@v2.8.1 | |
with: | |
message: | | |
Hello! I've built a preview of your PR so that you can compare it to the current `main` branch: | |
* [PR deploy preview including highlighted diff with `main`](https://joelostblom.github.io/viz-oer/diff${{ github.event.number }}/index.html) | |
* [PR deploy preview](https://joelostblom.github.io/viz-oer/pull${{ github.event.number }}/index.html) | |
* [Current main site](https://joelostblom.github.io/viz-oer/index.html) (just for convenience, not changed by CI) |