Skip to content

feat: add back-link to intro-lecture main page in quiz header #272

feat: add back-link to intro-lecture main page in quiz header

feat: add back-link to intro-lecture main page in quiz header #272

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
name: Render and Publish
permissions:
contents: read
pages: write
id-token: write
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
lint:
name: Lint with Prettier
runs-on: ubuntu-24.04
# env:
# NPM_CONFIG_USERCONFIG: ${{ runner.temp }}/.npmrc
steps:
- name: Check out repository
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '22'
- name: Configure npm registry
run: |
echo "registry=https://registry.npmjs.org/" > "$RUNNER_TEMP/.npmrc"
echo "always-auth=false" >> "$RUNNER_TEMP/.npmrc"
echo "NPM_CONFIG_USERCONFIG=$RUNNER_TEMP/.npmrc" >> $GITHUB_ENV
- name: Install dependencies
run: npm install
- name: Check for linting errors
run: npm run check
build-optimize:
name: Build, Optimize, and Upload Artifacts
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@v5
- name: Overwrite _quarto.yml
if: github.repository == 'maehr/open-research-data-template'
run: |
cp .github/_quarto.yml _quarto.yml
- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# uncomment below and fill to pin a version
# version: SPECIFIC-QUARTO-VERSION-HERE
# add software dependencies here and any libraries
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
- name: Create and activate virtual environment
run: |
uv venv .venv
echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
echo "$PWD/.venv/bin" >> $GITHUB_PATH
- name: Install the project
run: uv sync
- name: Setup R
uses: r-lib/actions/setup-r@v2
- name: Set R environment variables for precompiled binaries
run: |
echo "RENV_CONFIG_PAK_ENABLED=TRUE" >> $GITHUB_ENV
echo "RENV_CONFIG_PREFER_BINARY=TRUE" >> $GITHUB_ENV
echo "RENV_CONFIG_PACKAGE_CACHE=TRUE" >> $GITHUB_ENV
- uses: r-lib/actions/setup-renv@v2
with:
cache-version: 1
- name: Render Quarto Project
uses: quarto-dev/quarto-actions/render@v2
with:
path: .
- name: JamPack Optimization
run: |
export NPM_CONFIG_USERCONFIG="$RUNNER_TEMP/.npmrc"
echo "registry=https://registry.npmjs.org/" > "$RUNNER_TEMP/.npmrc"
echo "always-auth=false" >> "$RUNNER_TEMP/.npmrc"
npx --yes @divriots/jampack ./_site
- name: Upload Built Artifacts
uses: actions/upload-artifact@v7
with:
name: built-site
path: _site
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v4 # or specific "vX.X.X" version tag for this action
with:
path: _site
deadlinkcheck:
name: Download Artifacts and Check for Dead Links
runs-on: ubuntu-24.04
needs: build-optimize
steps:
- name: Download Built Artifacts
uses: actions/download-artifact@v8
with:
name: built-site
path: _site
- name: Start static server
run: |
cd _site
nohup python3 -m http.server 5528 &
sleep 3 # Give the server time to start
- name: Check for broken links
run: |
wget --spider --recursive --no-parent --no-check-certificate http://localhost:5528/ || exit 1
deploy:
name: Download Artifacts and Deploy
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-24.04
needs: [build-optimize]
if: github.event_name != 'pull_request'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5