From e09ee8ea9d6e75ae1496f710b3a15a497967fa4c Mon Sep 17 00:00:00 2001 From: James J Balamuta Date: Thu, 11 Apr 2024 21:53:17 -0700 Subject: [PATCH] Add a build and deploy on the dashboard. --- .../build-and-deploy-shinylive-r-app.yml | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/build-and-deploy-shinylive-r-app.yml diff --git a/.github/workflows/build-and-deploy-shinylive-r-app.yml b/.github/workflows/build-and-deploy-shinylive-r-app.yml new file mode 100644 index 0000000..a97bc0b --- /dev/null +++ b/.github/workflows/build-and-deploy-shinylive-r-app.yml @@ -0,0 +1,58 @@ +on: + push: + branches: [main, master] + release: + types: [published] + workflow_dispatch: {} + +name: demo-r-shinylive-dashboard-app + +jobs: + demo-r-shinylive-dashboard-app: + runs-on: ubuntu-latest + # Only restrict concurrency for non-PR jobs + concurrency: + group: r-shinylive-website-${{ github.event_name != 'pull_request' || github.run_id }} + # Describe the permissions for obtain repository contents and + # deploying a GitHub pages website for the repository + permissions: + contents: read + pages: write + id-token: write + steps: + # Obtain the contents of the repository + - name: "Check out repository" + uses: actions/checkout@v4 + + # Install R on the GitHub Actions worker + - name: "Setup R" + uses: r-lib/actions/setup-r@v2 + + # Install and pin the shinylive R package dependency + - name: "Setup R dependency for Shinylive App export" + uses: r-lib/actions/setup-r-dependencies@v2 + with: + packages: + cran::shinylive + + # Export the current working directory as the shiny app + # using the pinned version of the Shinylive R package + - name: Create Shinylive App from working directory files + shell: Rscript {0} + run: | + shinylive::export(".", "_site") + + # Upload a tar file that will work with GitHub Pages + # Make sure to set a retention day to avoid running into a cap + # This artifact shouldn't be required after deployment onto pages was a success. + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v2 + with: + retention-days: 1 + + # Use an Action deploy to push the artifact onto GitHub Pages + # This requires the `Action` tab being structured to allow for deployment + # instead of using `docs/` or the `gh-pages` branch of the repository + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 \ No newline at end of file