diff --git a/.github/ISSUE_TEMPLATE/url-error.md b/.github/ISSUE_TEMPLATE/url-error.md
new file mode 100644
index 00000000..fe131966
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/url-error.md
@@ -0,0 +1,8 @@
+---
+title: Broken URLs found in the course!
+labels: url-error
+---
+URL's in this course were just checked and some broken URLs were found.
+
+**Number of errors:** {{ env.ERROR_NUM }}
+**File where errors are:** [url checks file here]({{ env.FILE_URL }})
diff --git a/.github/workflows/check-url.yml b/.github/workflows/check-url.yml
new file mode 100644
index 00000000..a4370498
--- /dev/null
+++ b/.github/workflows/check-url.yml
@@ -0,0 +1,107 @@
+name: Periodic URL Check
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 0 1 * *'
+
+jobs:
+ set-up:
+ name: Load user automation choices
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ # 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_url_check_periodically: "${{ env.URL_CHECK_PERIODICALLY }}"
+
+ url-check:
+ name: Check URLs
+ needs: set-up
+ if: ${{needs.set-up.outputs.toggle_url_check_periodically == 'yes'}}
+ runs-on: ubuntu-latest
+ container:
+ image: jhudsl/base_ottr:main
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ # Delete the branch if this has been run before
+ - name: Delete branch locally and remotely
+ run: git push origin --delete preview-spell-error || echo "No branch to delete"
+
+ # Make the branch fresh
+ - name: Make the branch fresh
+ 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'
+
+ echo branch doesnt exist
+ git checkout -b preview-spell-error || echo branch exists
+ git push --set-upstream origin preview-spell-error || echo echo branch exists remotely
+ shell: bash
+
+ - name: Run the check
+ uses: jhudsl/ottr-reports@main
+ id: check_results
+ continue-on-error: true
+ with:
+ check_type: urls
+ error_min: 1
+
+ - name: Declare file path and time
+ id: check-report
+ run: |
+ error_num=$(cat check_reports/url_checks.tsv | wc -l)
+ error_num="$((error_num-1))"
+ echo "error_num=$error_num" >> $GITHUB_OUTPUT
+ echo "error_url=https://github.com/${GITHUB_REPOSITORY}/blob/preview-spell-error/check_reports/url_checks.tsv" >> $GITHUB_OUTPUT
+ shell: bash
+
+ - name: Stop if failure
+ if: steps.check_results.outcome == 'failure'
+ run: exit 1
+
+ - name: Print out error variables
+ run: |
+ echo ${{ steps.check-report.outputs.error_url }}
+ echo ${{ steps.check-report.outputs.error_num }}
+
+ - name: Find issues
+ id: find-issue
+ env:
+ GH_PAT: ${{ secrets.GH_PAT }}
+ run: |
+ echo "$GITHUB_REPOSITORY"
+ curl -o find_issue.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/find_issue.R
+ issue_exists=$(Rscript --vanilla find_issue.R --repo $GITHUB_REPOSITORY --git_pat $GH_PAT)
+ echo URL issue exists: $issue_exists
+ echo "issue_existence=$issue_exists" >> $GITHUB_OUTPUT
+
+ - name: If too many URL errors, then make an issue
+ if: ${{ steps.check-report.outputs.error_num >= 1 && steps.find-issue.outputs.issue_existence == 0}}
+ uses: JasonEtco/create-an-issue@v2
+ with:
+ filename: .github/ISSUE_TEMPLATE/url-error.md
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ FILE_URL: ${{ steps.check-report.outputs.error_url }}
+ ERROR_NUM: ${{ steps.check-report.outputs.error_num }}
+
+ - name: If no URL errors than delete the branch we made
+ if: ${{ steps.check-report.outputs.error_num < 1 }}
+ run: |
+ git config --system --add safe.directory "$GITHUB_WORKSPACE"
+ git push origin --delete preview-spell-error || echo "No branch to delete"
diff --git a/.github/workflows/delete-preview.yml b/.github/workflows/delete-preview.yml
index afd658af..faa83ccd 100644
--- a/.github/workflows/delete-preview.yml
+++ b/.github/workflows/delete-preview.yml
@@ -18,7 +18,7 @@ jobs:
# Check out current repository
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml
index 9316682a..5cd835ee 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
@@ -14,9 +14,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
+ token: ${{ secrets.GH_PAT }}
# Use the yaml-env-action action.
- name: Load environment from YAML
@@ -32,16 +33,18 @@ jobs:
- name: Make the branch fresh
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ git config --global user.name 'github-actions[bot]'
+ git config --global user.email 'github-actions[bot]@users.noreply.github.com'
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
+ 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 }}"
@@ -59,6 +62,7 @@ jobs:
check_type: spelling
error_min: 3
gh_pat: secrets.GH_PAT
+ branch_name: ${GITHUB_HEAD_REF}
url-check:
name: Check URLs
@@ -69,6 +73,7 @@ jobs:
check_type: urls
error_min: 0
gh_pat: secrets.GH_PAT
+ branch_name: ${GITHUB_HEAD_REF}
quiz-check:
name: Check quiz formatting
@@ -79,6 +84,7 @@ jobs:
check_type: quiz_format
error_min: 0
gh_pat: secrets.GH_PAT
+ branch_name: ${GITHUB_HEAD_REF}
############################# Style the code ###################################
style-code:
@@ -91,18 +97,18 @@ jobs:
steps:
- name: Checkout files
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
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 ###################################
@@ -117,7 +123,7 @@ jobs:
steps:
- name: Checkout files
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -125,8 +131,8 @@ jobs:
- name: Set up git checkout
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ git config --global user.name 'github-actions[bot]'
+ git config --global user.email 'github-actions[bot]@users.noreply.github.com'
branch_name='preview-${{ github.event.pull_request.number }}'
git fetch --all
@@ -137,23 +143,35 @@ 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
# Commit the rendered bookdown files
- name: Commit rendered bookdown files to preview branch
@@ -164,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
@@ -181,10 +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
@@ -198,11 +216,13 @@ jobs:
issue-number: ${{ github.event.pull_request.number }}
body: |
Re-rendered previews from the latest commit:
- - See [preview of Bookdown here](${{ steps.build-components.outputs.bookdown_link }})
- - See [preview of Coursera/Leanpub version here](${{ steps.build-components.outputs.tocless_link }})
- - Download the [preview of .docx file](${{ steps.build-components.outputs.docx_link }})
+ - :eyes: Quick [preview of course website here](${{ steps.build-components.outputs.bookdown_link }}) \*
+ - :microscope: Comprehensive [download of the course website here](${{ steps.build-components.outputs.zip_link }})
+ - Download the [.docx file](${{ steps.build-components.outputs.docx_link }})
- _Updated at ${{ steps.build-components.outputs.time }} with changes from ${{ steps.build-components.outputs.commit_id }}_
+ \* note not all html features will be properly displayed in the "quick preview" but it will give you a rough idea.
+
+ _Updated at ${{ steps.build-components.outputs.time }} with changes from the latest commit ${{ steps.build-components.outputs.commit_id }}_
edit-mode: replace
- name: Comment if no changes
diff --git a/.github/workflows/render-all.yml b/.github/workflows/render-all.yml
index 083817ac..b2e39b2c 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,8 +8,9 @@ on:
push:
branches: [ main, staging ]
paths:
- - '**.Rmd'
+ - '**md$'
- assets/*
+ - quizzes/*
jobs:
@@ -18,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Use the yaml-env-action action.
- name: Load environment from YAML
@@ -26,68 +27,85 @@ 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
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT }}
- - name: Login as jhudsl-robot
+ - name: Login as github actions bot
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ git config --global user.name 'github-actions[bot]'
+ git config --global user.email 'github-actions[bot]@users.noreply.github.com'
# 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
+
+ - 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 bookdown files
- - name: Commit rendered bookdown files
+ # 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}}
@@ -95,33 +113,42 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT }}
- - name: Login as jhudsl-robot
+ - name: Login as github-actions bot
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ 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:
@@ -129,21 +156,25 @@ 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:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT }}
- - name: Login as jhudsl-robot
+ - name: Login as github actions bot
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ 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
@@ -152,7 +183,8 @@ jobs:
rm -rf resources/chapt_screen_images
# Make new screenshots
- chapt_urls=$(Rscript --vanilla scripts/make_screenshots.R \
+ curl -o make_screenshots.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/make_screenshots.R
+ chapt_urls=$(Rscript --vanilla make_screenshots.R \
--git_pat ${{ secrets.GH_PAT }} \
--repo $GITHUB_REPOSITORY \
--output_dir resources/chapt_screen_images)
@@ -163,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
@@ -197,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:
@@ -210,16 +242,19 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT }}
- - name: Login as jhudsl-robot
+ - name: Login as github action
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
- git config --global user.email "itcrtrainingnetwork@gmail.com"
- git config --global user.name "jhudsl-robot"
+ 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
@@ -227,16 +262,18 @@ 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
git add --force manuscript/*
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/.github/workflows/transfer-rendered-files.yml b/.github/workflows/transfer-rendered-files.yml
index 3c3577ee..dae41411 100644
--- a/.github/workflows/transfer-rendered-files.yml
+++ b/.github/workflows/transfer-rendered-files.yml
@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Use the yaml-env-action action.
- name: Load environment from YAML
@@ -42,21 +42,23 @@ jobs:
if: ${{needs.yaml-check.outputs.toggle_coursera == 'yes' || needs.yaml-check.outputs.toggle_leanpub == 'yes'}}
steps:
+ - name: Checkout from Bookdown Repo
+ uses: actions/checkout@v4
+ with:
+ path: bookdown
+ token: ${{ secrets.GH_PAT }}
+
- name: Run git repo check
id: git_repo_check
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
- sudo apt-get install subversion
-
# What's the Quizzes repository's name?
QUIZ_REPO=$(echo ${GITHUB_REPOSITORY} | sed "s/_Bookdown/ /g" | sed "s/_Template/ /g" | awk '{print $1"_Quizzes"}')
echo $QUIZ_REPO
- # Get repo check script
- svn export --force https://github.com/${GITHUB_REPOSITORY}.git/branches/${GITHUB_REF#refs/heads/}/scripts/git_repo_check.R git_repo_check.R
-
# Run repo check script
+ curl -o git_repo_check.R https://raw.githubusercontent.com/jhudsl/ottr-reports/main/scripts/git_repo_check.R
results=$(Rscript --vanilla git_repo_check.R --repo "$GITHUB_REPOSITORY" --git_pat "$GH_PAT")
echo $QUIZ_REPO exists: $results
@@ -65,8 +67,9 @@ jobs:
- name: Checkout code from Leanpub repo
if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }}
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
+ path: quizzes
repository: ${{ steps.git_repo_check.outputs.leanpub_repo }}
token: ${{ secrets.GH_PAT }}
@@ -76,17 +79,19 @@ jobs:
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
- # Copy over images folder
- svn export --force https://github.com/${GITHUB_REPOSITORY}.git/branches/${GITHUB_REF#refs/heads/}/resources/chapt_screen_images resources/chapt_screen_images
+ # Copy over images folder (from bookdown to quizzes repo)
+ mkdir -p quizzes/resources/chapt_screen_images
+ cp bookdown/resources/chapt_screen_images/* quizzes/resources/chapt_screen_images
- # Copy over _bookdown.yml
- svn export --force https://github.com/${GITHUB_REPOSITORY}.git/branches/${GITHUB_REF#refs/heads/}/_bookdown.yml _bookdown.yml
+ # Copy over _bookdown.yml (from bookdown to quizzes repo)
+ cp bookdown/_bookdown.yml quizzes/_bookdown.yml
- name: Create PR with resources files
if: ${{ steps.git_repo_check.outputs.git_results == 'TRUE' }}
uses: peter-evans/create-pull-request@v3
id: cpr
with:
+ path: quizzes # Must create the PR in the Quizzes Repo
token: ${{ secrets.GH_PAT }}
commit-message: Copy files from Bookdown repository
signoff: false
diff --git a/assets/box_images/under_construction.png b/assets/box_images/under_construction.png
new file mode 100644
index 00000000..a67bd5c1
Binary files /dev/null and b/assets/box_images/under_construction.png differ
diff --git a/config_automation.yml b/config_automation.yml
index 1c9d38a5..460f4189 100644
--- a/config_automation.yml
+++ b/config_automation.yml
@@ -12,16 +12,18 @@ spell-check: yes
style-code: yes
# Test build the docker image if any docker-relevant files have been changed
docker-test: no
+# 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: no
-## Automate the creation of Book.txt file? TRUE/FALSE?
+## 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: TRUE
+make-book-txt: yes
# What docker image should be used for rendering?
# The default is jhudsl/base_ottr:main
diff --git a/resources/exclude_files.txt b/resources/exclude_files.txt
index cc77feed..5525a403 100644
--- a/resources/exclude_files.txt
+++ b/resources/exclude_files.txt
@@ -2,3 +2,7 @@ About.Rmd
docs/*
style-sets/*
manuscript/*
+CONTRIBUTING.md
+LICENSE.md
+code_of_conduct.md
+README.md
diff --git a/style-sets/data-trail/_output.yml b/style-sets/data-trail/_output.yml
new file mode 100644
index 00000000..571771ae
--- /dev/null
+++ b/style-sets/data-trail/_output.yml
@@ -0,0 +1,18 @@
+bookdown::gitbook:
+ css: assets/style_DataTrail.css
+ includes:
+ before_body: assets/big-image-DataTrail.html
+ after_body: assets/footer.html
+ highlight: tango
+ config:
+ toc:
+ collapse: section
+ before: |
+
+ after: |
+
+
+
+
+
+
would */
+}
+
+.sourceCode pre {
+ margin: 0 !important; /* makes space above and below symmetrical*/
+}
+
+/* Footer */
+
+.footer {
+ font-family: "Lora", serif;
+ font-size: .85em;
+ color: #193a5c;
+}
\ No newline at end of file
diff --git a/style-sets/data-trail/index.Rmd b/style-sets/data-trail/index.Rmd
new file mode 100644
index 00000000..34e0f3a4
--- /dev/null
+++ b/style-sets/data-trail/index.Rmd
@@ -0,0 +1,38 @@
+---
+title: " Course Name "
+date: "`r format(Sys.time(), '%B, %Y')`"
+site: bookdown::bookdown_site
+documentclass: book
+bibliography: [book.bib, packages.bib]
+biblio-style: apalike
+link-citations: yes
+description: "Description about Course/Book."
+favicon: assets/DataTrail_favicon.ico
+---
+
+
+```{r include=FALSE}
+# automatically create a bib database for R packages
+knitr::write_bib(c(
+ .packages(), "bookdown", "knitr", "rmarkdown"
+), "packages.bib")
+```
+
+# About this Course {-}
+
+This course is part of a series of courses for [DataTrail](https://www.datatrail.org/). DataTrail is a no-cost, paid 14-week educational initiative for young-adult, high school and GED-graduates. DataTrail aims to equip members of underserved communities with the necessary skills and support required to work in the booming field of data science.
+
+DataTrail is a fresh take on workforce development that focuses on training both Black, Indigenous, and other people of color (BIPOC) interested in the data science industry and their potential employers.
+
+Offered by the Johns Hopkins Bloomberg School of Public Health, in partnership with local non-profits and Leanpub, DataTrail combines a mutually-intensive learning experience (MILE) with a whole-person ecosystem of support to allow aspiring data scientists and their employers to succeed.
+
+DataTrail uses mutually-intensive learning
+DataTrail joins aspiring data science scholars and expert-level data scientist mentors in a mutually-intensive learning experience (MILE).
+
+In the DataTrail MILE:
+
+Scholars engage in cutting-edge technical and soft skills training needed to enter the data science field.
+
+Mentors engage in anti-racism and mentorship training needed to be impactful mentors and informed colleagues on diverse data science teams.
+
+The social connections created along the way will fuel job opportunities for scholars and foster a more diverse, equitable, and inclusive climate at the mentors' institutions.
diff --git a/style-sets/fhdasl/_output.yml b/style-sets/fhdasl/_output.yml
new file mode 100644
index 00000000..0a864962
--- /dev/null
+++ b/style-sets/fhdasl/_output.yml
@@ -0,0 +1,18 @@
+bookdown::gitbook:
+ css: assets/style.css
+ includes:
+ before_body: assets/big-image_fhdasl.html
+ after_body: assets/footer.html
+ split_bib: false
+ highlight: tango
+ config:
+ toc:
+ collapse: section
+ before: |
+ This content was published with bookdown using
+ after: |
+