# Workflow derived from https://github.com/rstudio/shiny-workflows # # NOTE: This Shiny team GHA workflow is overkill for most R packages. # For most R packages it is better to use https://github.com/r-lib/actions on: push: branches: [main, rc-**] pull_request: branches: [main] schedule: - cron: "0 9 * * 1" # every monday name: Package checks jobs: website: uses: rstudio/shiny-workflows/.github/workflows/website.yaml@v1 routine: uses: rstudio/shiny-workflows/.github/workflows/routine.yaml@v1 R-CMD-check: uses: rstudio/shiny-workflows/.github/workflows/R-CMD-check.yaml@v1 integration: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Set up Python - 3.12 uses: actions/setup-python@v5 with: python-version: "3.12" - name: Upgrade pip shell: bash run: | python -m pip install --upgrade pip - name: Install py-shinylive shell: bash run: | pip install shinylive # pip install https://github.com/posit-dev/py-shinylive/archive/split_api.zip - name: Set up Quarto uses: quarto-dev/quarto-actions/setup@v2 - name: Install quarto-ext/shinylive shell: bash run: | cd local/quarto quarto add quarto-ext/shinylive --no-prompt # Trouble installing from branch. Using url instead. # quarto add http://github.com/quarto-ext/shinylive/archive/v2_api.zip --no-prompt - name: Install R, system dependencies, and package dependencies uses: rstudio/shiny-workflows/setup-r-package@v1 with: needs: quarto - name: Check out 'posit-dev/shinylive' repo into './shinylive_assets' uses: actions/checkout@v4 with: repository: posit-dev/shinylive path: shinylive_assets - name: Build shinylive assets shell: bash run: | cd shinylive_assets make submodules make all - name: Link shinylive assets shell: Rscript {0} run: | shinylive::assets_install_copy("shinylive_assets") shinylive::assets_info() - name: Update lua script for debugging shell: Rscript {0} run: | shinylive_lua <- file.path( "local", "quarto", "_extensions", # (When installing from a zip url, there is no `quarto-ext` dir.) "quarto-ext", "shinylive", "shinylive.lua" ) shinylive_lua |> brio::read_file() |> sub( pattern = "-- print(\"Calling", replacement = "print(\"Calling", fixed = TRUE ) |> sub( pattern = "-- print(\"res", replacement = "-- print(\"res", fixed = TRUE ) |> brio::write_file(shinylive_lua) cat(brio::read_file(shinylive_lua),"\n") - name: Run shinylive R package tests env: TEST_ASSETS: "TRUE" shell: Rscript {0} run: | shinylive::assets_info() dir(shinylive:::assets_cache_dir()) dir(shinylive:::assets_dirs()) as.list(fs::file_info(shinylive:::assets_dirs())) shinylive::assets_ensure() testthat::test_local() # If this (^^) completes, it is a big success! # Run quarto test after testthat test - name: Test shinylive quarto extension can build uses: quarto-dev/quarto-actions/render@v2 with: path: local/quarto/ # TODO-barret-future; Test the output of the render using pyright / py-shiny e2e controls?