250825 Data Update, Ballot Topics and Quarto Enhancements (#13) #12
This file contains hidden or 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
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
workflow_dispatch: | |
name: Render and Publish | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
lint: | |
name: Lint with Prettier | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '22' | |
- 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-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- 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 }} | |
# with: | |
# To install LaTeX to build PDF book outputs, uncomment below | |
# tinytex: true | |
# uncomment below and fill to pin a version | |
# version: SPECIFIC-QUARTO-VERSION-HERE | |
# add software dependencies here and any libraries | |
# From https://github.com/actions/setup-python | |
# - name: Setup Python | |
# uses: actions/setup-python@v3 | |
# From https://github.com/r-lib/actions/tree/v2-branch/setup-r | |
- name: Setup R | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: renv | |
- name: Install system dependencies for R packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libcurl4-openssl-dev pkg-config libglpk-dev | |
- name: Setup R environment | |
uses: r-lib/actions/setup-renv@v2 | |
# From https://github.com/julia-actions/setup-julia | |
# - name: Setup Julia | |
# uses: julia-actions/setup-julia@v1 | |
# See more at https://github.com/quarto-dev/quarto-actions/blob/main/examples/example-03-dependencies.md | |
- name: Render Quarto Project | |
uses: quarto-dev/quarto-actions/render@v2 | |
with: | |
to: html | |
- name: JamPack Optimization | |
run: | | |
npx @divriots/jampack ./_site | |
- name: Upload Built Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: built-site | |
path: _site | |
- name: Upload static files as artifact | |
id: deployment | |
uses: actions/upload-pages-artifact@v3 # 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-latest | |
needs: build-optimize | |
steps: | |
- name: Download Built Artifacts | |
uses: actions/download-artifact@v4 | |
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 (non-blocking) | |
run: | | |
echo "Checking for broken links (non-fatal)..." | |
wget --spider --recursive --no-parent --no-check-certificate http://localhost:5528/ 2>&1 | tee wget-log.txt | |
grep -q "Remote file does not exist" wget-log.txt && echo "::warning::Broken links found (ignored in CI)" || echo "No broken links found" | |
deploy: | |
name: Deploy | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: [build-optimize, deadlinkcheck] | |
if: github.event_name != 'pull_request' | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |