name: Deploy Shinylive App
on:
  push:
    branches: [main]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pages: write
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - uses: r-lib/actions/setup-r@v2
      - name: Install Shinylive, Knitr, and Rmarkdown
        run: |
          Rscript -e "install.packages(c('shinylive', 'knitr', 'rmarkdown'))"
      - name: Export App
        # Copies R files to inst/connect_modules/R/ first if not in git
        run: |
          cp -r R inst/connect_modules/
          Rscript -e "shinylive::export('inst/connect_modules', 'docs/shiny', wasm_packages = FALSE)"
      - name: Upload Pages artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: 'docs'
      - name: Deploy to GitHub Pages
        uses: actions/deploy-pages@v4
