diff --git a/.github/workflows/render-all.yml b/.github/workflows/render-all.yml deleted file mode 100644 index bbd5da9..0000000 --- a/.github/workflows/render-all.yml +++ /dev/null @@ -1,54 +0,0 @@ -# Candace Savonen 2021 -# Updated April 2025 - -name: Render website - -on: - workflow_dispatch: - push: - branches: [ main, staging ] - paths: - - '*.qmd' - - '*.Rmd' - - assets/* - - quizzes/* - -jobs: - - yaml-check: - name: Load user automation choices - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - # Use the yaml-env-action action. - - name: Load environment from YAML - uses: doughepi/yaml-env-action@v1.0.0 - with: - files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. - outputs: - toggle_website: "${{ env.RENDER_WEBSITE }}" - rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" - - render-website: - name: Render website - needs: yaml-check - runs-on: ubuntu-latest - container: - image: ${{needs.yaml-check.outputs.rendering_docker_image}} - - steps: - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GH_PAT }} - - - name: Run render - id: render - uses: ottrproject/ottr-preview@main - with: - toggle_website: ${{needs.yaml-check.outputs.toggle_website}} - preview: false - token: ${{ secrets.GH_PAT }} diff --git a/.github/workflows/render-site.yml b/.github/workflows/render-site.yml new file mode 100644 index 0000000..d5d6415 --- /dev/null +++ b/.github/workflows/render-site.yml @@ -0,0 +1,83 @@ + +# It was adapted by Candace Savonen for the OTTR_template https://github.com/jhudsl/OTTR_Template. + +# This code was adapted by Carrie Wright to enable automated rendering of the site associated with this repository + +name: Render html + +# Controls when the action will run. Triggers the workflow on push +# events only for the master branch +on: + workflow_dispatch: + push: + branches: [ main ] + paths: + - '**.Rmd' + - styles.css + - _site.yml + - resources/images/*.png + - resources/images/favicon.ico + +jobs: + yaml-check: + name: Load user automation choices + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + # Use the yaml-env-action action. + - name: Load environment from YAML + uses: doughepi/yaml-env-action@v1.0.0 + with: + files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. + + outputs: + rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" + + # This workflow contains a single job called "build-all" + render-main: + needs: yaml-check + runs-on: ubuntu-latest + container: + image: ${{needs.yaml-check.outputs.rendering_docker_image}} + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: checkout + uses: actions/checkout@v4 + with: + # get the full repo + fetch-depth: 0 + # use github PAT + token: ${{ secrets.GH_PAT }} + + # We want a fresh run of the renders each time - so first delete old html files + - name: Delete old *.html + run: Rscript -e "rmarkdown::clean_site(preview = FALSE)" + + # Now we want to render all the html files from the Rmd files + - name: Run render html + id: site + run: Rscript -e "rmarkdown::render_site()" + + # This checks on the steps before it and makes sure that they completed. + # If the renders didn't complete we don't want to commit the file changes + - name: Check on render steps + if: steps.site.outcome != 'success' + run: | + echo site status ${{steps.site.outcome}} + exit 1 + +# Commit the rendered site files - html files and site_libs files +# The git reset step will remove any other files created in this workflow, such as API keys + - name: Commit rendered site files + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + git add --force docs/* + git commit -m 'Render site' || echo "No changes to commit" + git reset --hard HEAD + git pull --rebase --allow-unrelated-histories --strategy-option=ours + git push origin main || echo "No changes to push"