Quarto and automation

JSM 2023 - Toronto

Colin Rundel

Duke University

Context

  • Sta 323 / Sta 523 - R based statistical computing (UG / MS)

  • Sta 663 - Python based statistical computing (MS)

  • All courses run using GitHub

    • 1 organization / course

    • Students added as org members

    • 1 repo / assignment (team or individual)

    • Management via ghclass

Sta 523 - HW 1

.github/workflows/check_assignment.yml

on: push
name: Check Assignment
jobs:
  check-allowed-files:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/sta523-fa22/sta523-base:latest
    steps:
    - name: Checkout
      uses: actions/checkout@master
    - name: Check Files
      run: |
        checklist::quit_on_failure({
          checklist::check_allowed_files(
            c("hw1.qmd", "hw1.Rproj", "README.md", "fizzbuzz.png")
          )
        })
      shell: Rscript {0}
  
  check-renders:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/sta523-fa22/sta523-base:latest
    steps:
    - name: Checkout
      uses: actions/checkout@master
    - name: Install Missing Packages
      run: |
        missing = checklist::install_missing_pkgs(dir = "./", glob = "hw1.qmd")
      shell: Rscript {0}
    - name: Check Renders
      run: |
        checklist::check_qmd_renders("hw1.qmd")
      shell: Rscript {0}
    - name: Create artifacts
      uses: actions/upload-artifact@v3
      with:
        name: hw1-html
        path: hw1.html