diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index d81d780..5cd835e 100644
--- a/.github/workflows/pull_request.yml
+++ b/.github/workflows/pull_request.yml
@@ -1,5 +1,5 @@
# Candace Savonen 2021
-# Updated Jan 2023
+# Updated May 2024
name: Pull Request
@@ -39,11 +39,12 @@ jobs:
branch_name='preview-${{ github.event.pull_request.number }}'
echo branch doesnt exist
git checkout -b $branch_name || echo branch exists
- git push --set-upstream origin $branch_name || echo echo branch exists remotely
+ git push --set-upstream origin $branch_name || echo branch exists remotely
shell: bash
outputs:
+ toggle_website: "${{ env.RENDER_WEBSITE }}"
toggle_spell_check: "${{ env.SPELL_CHECK }}"
toggle_style_code: "${{ env.STYLE_CODE }}"
toggle_url_check: "${{ env.URL_CHECKER }}"
@@ -101,13 +102,13 @@ jobs:
fetch-depth: 0
- name: Run styler
- run: Rscript -e "styler::style_file(list.files(pattern = 'Rmd$', recursive = TRUE, full.names = TRUE));warnings()"
+ run: Rscript -e "styler::style_file(list.files(pattern = '(R|q)md$', recursive = FALSE, full.names = TRUE));warnings()"
- name: Commit styled files
run: |
git config --system --add safe.directory "$GITHUB_WORKSPACE"
- git add \*.Rmd
- git commit -m 'Style Rmds' || echo "No changes to commit"
+ git add \*md
+ git commit -m 'Style *mds' || echo "No changes to commit"
git push origin || echo "No changes to commit"
############################# Render Preview ###################################
@@ -142,23 +143,32 @@ jobs:
# Run bookdown rendering
- name: Run bookdown render
id: bookdown
+ if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')"
- # Run TOC-less version
- # Rendered content for Leanpub and Coursera is very similar.
- # This job creates a shared scaffold for both.
- - name: Run TOC-less version of render
- id: tocless
- run: Rscript -e "ottrpal::render_without_toc()"
+ # Run quarto rendering
+ - name: Render quarto version
+ id: quarto
+ if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
+ run: Rscript -e "quarto::quarto_render('.')"
# 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.bookdown.outcome != 'success' || steps.tocless.outcome != 'success'
+ - name: Check on Rmd render steps
+ if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
echo Bookdown status ${{steps.bookdown.outcome}}
- echo Toc-less status ${{steps.tocless.outcome}}
- exit 1
+ if [${{steps.bookdown.outcome}} != 'success']; then
+ exit 1
+ fi
+
+ - name: Check on quarto render steps
+ if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
+ run: |
+ echo Quarto status ${{steps.quarto.outcome}}
+ if [${{steps.quarto.outcome}} != 'success']; then
+ exit 1
+ fi
- name: Website preview for download
run: zip website-preview.zip docs/* -r
@@ -172,7 +182,7 @@ jobs:
echo "changes=$changes" >> $GITHUB_OUTPUT
git add . --force
git commit -m 'Render preview' || echo "No changes to commit"
- git pull --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours
+ git pull --rebase --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours
git push --force || echo "No changes to commit"
shell: bash
@@ -189,12 +199,10 @@ jobs:
run: |
course_name=$(head -n 1 _bookdown.yml | cut -d'"' -f 2| tr " " "-")
bookdown_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/index.html")
- tocless_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/no_toc/index.html")
docx_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/docs/$course_name.docx")
zip_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/website-preview.zip")
echo "zip_link=$zip_link" >> $GITHUB_OUTPUT
echo "bookdown_link=$bookdown_link" >> $GITHUB_OUTPUT
- echo "tocless_link=$tocless_link" >> $GITHUB_OUTPUT
echo "docx_link=$docx_link" >> $GITHUB_OUTPUT
echo "time=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
echo "commit_id=$GITHUB_SHA" >> $GITHUB_OUTPUT
diff --git a/.github/workflows/render-all.yml b/.github/workflows/render-all.yml
index 12643d8..b2e39b2 100644
--- a/.github/workflows/render-all.yml
+++ b/.github/workflows/render-all.yml
@@ -1,5 +1,5 @@
-
-# Candace Savonen Apr 2021
+# Candace Savonen 2021
+# Updated May 2024
name: Render all output courses
@@ -8,7 +8,7 @@ on:
push:
branches: [ main, staging ]
paths:
- - '**.Rmd'
+ - '**md$'
- assets/*
- quizzes/*
@@ -27,20 +27,19 @@ jobs:
with:
files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence.
outputs:
- toggle_bookdown: "${{ env.RENDER_BOOKDOWN }}"
+ toggle_website: "${{ env.RENDER_WEBSITE }}"
toggle_coursera: "${{ env.RENDER_COURSERA }}"
toggle_leanpub: "${{ env.RENDER_LEANPUB }}"
make_book_txt: "${{ env.MAKE_BOOK_TXT }}"
rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}"
toggle_quiz_check: "${{ env.CHECK_QUIZZES }}"
- render-bookdown:
- name: Render bookdown
+ render-course:
+ name: Render course preview
needs: yaml-check
runs-on: ubuntu-latest
container:
image: ${{needs.yaml-check.outputs.rendering_docker_image}}
- if: ${{needs.yaml-check.outputs.toggle_bookdown == 'yes'}}
steps:
- name: checkout
@@ -57,38 +56,56 @@ jobs:
# We want a fresh run of the renders each time
- name: Delete old docs/*
- run: rm -rf docs/*
+ run: |
+ git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
+ git fetch origin
+ git pull --rebase --allow-unrelated-histories --strategy-option=ours
- # Run bookdown rendering
+ # Run Rmd rendering
- name: Run bookdown render
id: bookdown
+ if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
+ rm -rf docs/*
Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all');
file.copy(from = 'assets', to = 'docs/assets', overwrite = TRUE)"
+ - name: Render quarto version
+ id: quarto
+ if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
+ run: Rscript -e "quarto::quarto_render('.')"
+
# 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 step
- if: steps.bookdown.outcome != 'success'
+ - name: Check on Rmd render steps
+ if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
echo Bookdown status ${{steps.bookdown.outcome}}
- exit 1
+ if [${{steps.bookdown.outcome}} != 'success']; then
+ exit 1
+ fi
- # Commit the rendered bookdown files
- - name: Commit rendered bookdown files
+ - name: Check on quarto render steps
+ if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
+ run: |
+ echo Quarto status ${{steps.quarto.outcome}}
+ if [${{steps.quarto.outcome}} != 'success']; then
+ exit 1
+ fi
+
+ # Commit the rendered course files
+ - name: Commit rendered course files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
- git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
- git fetch origin
git add --force docs/*
- git commit -m 'Render bookdown' || echo "No changes to commit"
- git pull --allow-unrelated-histories --strategy-option=ours
+ git commit -m 'Render course' || echo "No changes to commit"
+ git status docs/*
git push -u origin main || echo "No changes to push"
render-tocless:
name: Render TOC-less version for Leanpub or Coursera
- needs: [yaml-check]
+ needs: [yaml-check, render-course]
runs-on: ubuntu-latest
container:
image: ${{needs.yaml-check.outputs.rendering_docker_image}}
@@ -106,23 +123,32 @@ jobs:
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 remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
+ git fetch origin
+ git pull --rebase --allow-unrelated-histories --strategy-option=ours
# Rendered content for Leanpub and Coursera is very similar.
# This job creates a shared scaffold for both.
- - name: Run TOC-less version of render
- id: tocless
+ - name: Run TOC-less version of render -- Rmd version
+ if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
+ id: tocless_rmd
run: Rscript -e "ottrpal::render_without_toc()"
+ - name: Run TOC-less version of render -- quarto version
+ id: tocless_quarto
+ if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
+ run: |
+ Rscript -e "quarto::quarto_render('.', metadata = list(sidebar = F, toc = F),
+ quarto_args = c('--output-dir', 'docs/no_toc/'))"
+
# Commit the TOC-less version files
- name: Commit tocless bookdown files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
- git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
- git fetch origin
git add --force docs/no_toc*
git commit -m 'Render toc-less' || echo "No changes to commit"
- git pull --allow-unrelated-histories --strategy-option=ours
+ git status docs/no_toc*
git push -u origin main || echo "No changes to push"
render-leanpub:
@@ -130,7 +156,7 @@ jobs:
needs: [yaml-check, render-tocless]
runs-on: ubuntu-latest
container:
- image: jhudsl/ottrpal:main
+ image: jhudsl/ottrpal
if: ${{needs.yaml-check.outputs.toggle_leanpub == 'yes'}}
steps:
@@ -145,6 +171,10 @@ jobs:
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 remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
+ git fetch origin
+ git pull --rebase --allow-unrelated-histories --strategy-option=ours
+ ls docs/no_toc
# Create screenshots
- name: Run the screenshot creation
@@ -165,29 +195,28 @@ jobs:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
rm -rf manuscript/
- git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
- git fetch origin
git add .
git commit -m 'Delete manuscript folder' || echo "No changes to commit"
- git pull --allow-unrelated-histories --strategy-option=ours
git push -u origin main || echo "No changes to push"
- name: Run ottrpal::bookdown_to_embed_leanpub
- if: needs.yaml-check.outputs.toggle_quiz_check == 'no'
+ if: ${{ needs.yaml-check.outputs.toggle_quiz_check == 'no'}}
run: |
+ echo needs.yaml-check.outputs.toggle_make_book_txt == 'yes'
+ echo needs.yaml-check.outputs.toggle_make_book_txt
Rscript -e "ottrpal::bookdown_to_embed_leanpub(
render = FALSE, \
chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
- make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \
+ make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt == 'yes'}}'), \
quiz_dir = NULL)"
- name: Run ottrpal::bookdown_to_embed_leanpub
- if: needs.yaml-check.outputs.toggle_quiz_check == 'yes'
+ if: ${{ needs.yaml-check.outputs.toggle_quiz_check == 'yes'}}
run: |
Rscript -e "ottrpal::bookdown_to_embed_leanpub(
render = FALSE, \
chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
- make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))"
+ make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt == 'yes'}}'))"
# Commit the rendered Leanpub files
- name: Commit rendered Leanpub files
@@ -199,7 +228,8 @@ jobs:
git add --force resources/*
git add --force docs/*
git commit -m 'Render Leanpub' || echo "No changes to commit"
- git pull --allow-unrelated-histories --strategy-option=ours
+ git status docs/*
+ git pull --rebase --allow-unrelated-histories --strategy-option=ours --autostash
git push --force --set-upstream origin main || echo "No changes to push"
render-coursera:
@@ -222,6 +252,9 @@ jobs:
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 remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
+ git fetch origin
+ git pull --rebase --allow-unrelated-histories --strategy-option=ours
# Run Coursera version
- name: Convert Leanpub quizzes to Coursera
@@ -229,14 +262,12 @@ jobs:
id: coursera
run: Rscript -e "ottrpal::convert_coursera_quizzes()"
- # Commit the rendered bookdown files
+ # Commit the rendered files
# Only commit coursera quizzes if the directory is present
- name: Commit rendered Coursera files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
- git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
- git fetch origin
if [ -d 'coursera_quizzes' ]; then
git add --force coursera_quizzes/*
fi
@@ -244,5 +275,5 @@ jobs:
git add --force resources/*
git add --force docs/*
git commit -m 'Render Coursera quizzes' || echo "No changes to commit"
- git pull --allow-unrelated-histories --strategy-option=ours
+ git status
git push -u origin main || echo "No changes to push"
diff --git a/config_automation.yml b/config_automation.yml
index ddf6661..460f418 100644
--- a/config_automation.yml
+++ b/config_automation.yml
@@ -12,15 +12,19 @@ spell-check: yes
style-code: yes
# Test build the docker image if any docker-relevant files have been changed
docker-test: no
-# Should the book_txt be generated?
-make_book_txt: yes
+# Should URLs be tested periodically?
+url-check-periodically: yes
##### Renderings run upon merge to main branch #####
# Rendering each platform's content
-render-bookdown: yes
+render-website: rmd
render-leanpub: yes
-render-coursera: yes
+render-coursera: no
+
+## Automate the creation of Book.txt file? yes/no
+## This is only relevant if render-leanpub is yes, otherwise it will be ignored
+make-book-txt: yes
# What docker image should be used for rendering?
-# The default is jhudsl/course_template:main
-rendering-docker-image: 'jhudsl/course_template:main'
+# The default is jhudsl/base_ottr:main
+rendering-docker-image: 'jhudsl/base_ottr:main'
diff --git a/style-sets/data-trail/_output.yml b/style-sets/data-trail/_output.yml
index bf0596b..571771a 100644
--- a/style-sets/data-trail/_output.yml
+++ b/style-sets/data-trail/_output.yml
@@ -10,7 +10,8 @@ bookdown::gitbook:
before: |
after: |
- This content was published with bookdown by: This content was published with bookdown by: This content was published with bookdown using
This content was published with bookdown by:
+This content was published with bookdown using
+