From 4ce4a44e05dc51876c52ddba5c71eabe4a2a8445 Mon Sep 17 00:00:00 2001 From: cansavvy Date: Tue, 17 Sep 2024 20:03:22 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=94=84=20Synced=20local=20'config=5Fa?= =?UTF-8?q?utomation.yml'=20with=20remote=20'config=5Fautomation.yml'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit release- --- config_automation.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/config_automation.yml b/config_automation.yml index e44db87..460f418 100644 --- a/config_automation.yml +++ b/config_automation.yml @@ -11,18 +11,20 @@ spell-check: yes # Style any R code style-code: yes # Test build the docker image if any docker-relevant files have been changed -docker-test: yes +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/course_template:main -rendering-docker-image: 'jhudsl/ocs_guide:main' +# The default is jhudsl/base_ottr:main +rendering-docker-image: 'jhudsl/base_ottr:main' From b9d49401d899b5806e71b26a42e0a2471e9d4b6b Mon Sep 17 00:00:00 2001 From: cansavvy Date: Tue, 17 Sep 2024 20:03:22 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=94=84=20Synced=20local=20'.github/wo?= =?UTF-8?q?rkflows/'=20with=20remote=20'.github/workflows/'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit release- --- .github/workflows/docker-build.yml | 78 ------------- .github/workflows/pull_request.yml | 44 +++++--- .github/workflows/release-notes.yml | 4 +- .github/workflows/render-all.yml | 105 +++++++++++------ .github/workflows/send-updates.yml | 45 ++++++++ .github/workflows/starting-course.yml | 144 ++++++++++++++++++++++++ .github/workflows/test-send-updates.yml | 40 +++++++ 7 files changed, 325 insertions(+), 135 deletions(-) delete mode 100644 .github/workflows/docker-build.yml create mode 100644 .github/workflows/send-updates.yml create mode 100644 .github/workflows/starting-course.yml create mode 100644 .github/workflows/test-send-updates.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index cfeb30f..0000000 --- a/.github/workflows/docker-build.yml +++ /dev/null @@ -1,78 +0,0 @@ -# Candace Savonen Apr 2021 - -name: Build Docker - -on: - workflow_dispatch: - inputs: - dockerhubpush: - description: 'Push to Dockerhub?' - required: true - default: 'false' - tag: - description: 'What tag to use?' - required: true - default: 'none' -jobs: - build-docker: - name: Build Docker image - runs-on: ubuntu-latest - - steps: - - name: checkout repo - uses: actions/checkout@v2 - - - name: Login as jhudsl-robot - run: | - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" - - - name: Don't re-test if this is a sync branch - run: | - echo This was tested on OTTR_Template no need to re-run - - # Set up Docker build - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - # Setup layer cache - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - # Set up Docker build - - name: Set up Docker Build - if: ${{ github.head_ref != 'repo-sync/OTTR_Template/default' }} - uses: docker/setup-buildx-action@v1 - - - name: Get token - run: echo ${{ secrets.GH_PAT }} > docker/git_token.txt - - # Build docker image - - name: Build Docker image - uses: docker/build-push-action@v2 - with: - push: false - load: true - context: docker - file: docker/Dockerfile - tags: jhudsl/course_template - - # Login to Dockerhub - - name: Login to DockerHub - if: ${{ github.event.inputs.dockerhubpush != 'false' }} - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - # Push the Docker image if set to true from a manual trigger - - name: Push Docker image if manual trigger set to true - if: ${{ github.event.inputs.dockerhubpush != 'false' }} - run: | - docker tag jhudsl/course_template:latest jhudsl/course_template:$github.event.inputs.tag - docker push jhudsl/course_template:$github.event.inputs.tag 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/release-notes.yml b/.github/workflows/release-notes.yml index 475b3a8..30a6ab7 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -11,7 +11,8 @@ jobs: pr-comment: runs-on: ubuntu-latest steps: - - uses: mshick/add-pr-comment@v1 + + - uses: mshick/add-pr-comment@v2 if: ${{ github.head_ref == 'repo-sync/OTTR_Template/default' }} with: message: | @@ -30,6 +31,5 @@ jobs: You may want to unenroll your repository from the sync GitHub actions by [filing a PR](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) on `OTTR_Template` to delete [your repo name from this file](https://github.com/jhudsl/OTTR_Template/blob/main/.github/sync.yml) if this will continue to be the case. - repo-token: ${{ secrets.GH_PAT }} repo-token-user-login: 'github-actions[bot]' # The user.login for temporary GitHub tokens allow-repeats: false # This is the default 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/.github/workflows/send-updates.yml b/.github/workflows/send-updates.yml new file mode 100644 index 0000000..f636dc0 --- /dev/null +++ b/.github/workflows/send-updates.yml @@ -0,0 +1,45 @@ +# Candace Savonen Aug 2021 + +name: Sync Files + +on: + release: + types: + - published + workflow_dispatch: + inputs: + prtag: + description: 'Tag to use?' + required: true + default: 'null' + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Login as github actions bot + 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' + + - name: Get the version + id: get_tag + run: | + if [ github.event.inputs.prtag == 'null' ] + then + echo "version=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT + fi + if [ github.event.inputs.prtag != 'null' ] + then + echo "version=${{ github.event.inputs.prtag }}" >> $GITHUB_OUTPUT + fi + + - name: Run Mechanics File Sync + uses: BetaHuhn/repo-file-sync-action@v1.17.21 + with: + GH_PAT: ${{ secrets.GH_PAT }} + COMMIT_BODY: release-${{ steps.get_tag.outputs.version }} diff --git a/.github/workflows/starting-course.yml b/.github/workflows/starting-course.yml new file mode 100644 index 0000000..144aa3d --- /dev/null +++ b/.github/workflows/starting-course.yml @@ -0,0 +1,144 @@ +# Code adapted from https://github.com/JetBrains/intellij-platform-plugin-template/blob/deb171483598ee8a5d7621154db880e87b4db4ef/.github/workflows/template-cleanup.yml +# by Candace Savonen for this repository. + +name: Starting a new course + +on: + push: + branches: [ main, staging ] + workflow_dispatch: + +jobs: + # Run cleaning process only if workflow is triggered by not being in the Bookdown template anymore + template-cleanup: + name: Template Cleanup + runs-on: ubuntu-latest + if: github.event.repository.name != 'OTTR_Template' + steps: + - name: checkout repo + uses: actions/checkout@v4 + + - name: Login as jhudsl-robot + run: | + git config --global --add safe.directory $GITHUB_WORKSPACE + git config --global user.email "itcrtrainingnetwork@gmail.com" + git config --global user.name "jhudsl-robot" + +##### Delete Template-specific files that aren't needed for new courses + + # Cleanup Template-specific bits + - name: Cleanup + run: | + # Cleanup + mv .github/course_README_template.md README.md + rm -rf \ + .github/workflows/report-maker.yml \ + .github/workflows/send-updates.yml \ + .github/workflows/test-send-updates.yml \ + .github/sync.yml \ + .github/test-sync.yml \ + .github/workflows/starting-course.yml \ + .github/ISSUE_TEMPLATE/course-template-problem-report.md \ + .github/ISSUE_TEMPLATE/course-template-feature-request.md \ + .github/ISSUE_TEMPLATE/new-course-add-to-sync.md \ + .github/ISSUE_TEMPLATE/update-course-info-for-sync.md \ + .github/PULL_REQUEST_TEMPLATE/add_to_sync_template.md \ + resources/code_output \ + resources/screenshots \ + resources/course_screenshots \ + resources/gs_slides \ + resources/image_to_slide_key.tsv \ + resources/images/02-chapter_of_course_files \ + resources/images/03-test_cases_files \ + resources/images/04-figures_files \ + resources/chapt_screen_images \ + Course_Name.rds \ + code_of_conduct.md \ + CONTRIBUTING.md \ + docs/*.html \ + docs/*.md \ + manuscript/* + + + # Commit modified files + - name: Commit deleted files + id: commit_it + 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 add . + git commit -m "Template cleanup" + pushed_it=true + git push || pushed_it=false + echo "pushed_it=$pushed_it" >> $GITHUB_OUTPUT + + # If main is already protected, then file a PR + - name: Create PR with deleted files + if: steps.commit_it.outputs.pushed_it == 'false' + uses: peter-evans/create-pull-request@v3 + id: pr + with: + commit-message: Delete unnecessary files + signoff: false + branch: auto_copy_rendered_files + delete-branch: true + title: 'Automatic course set up' + body: | + ### Description: + This PR was initiated by the github actions. It helps set up this repository to be ready to write your course. + It deletes some remnant files you don't need for your course but were used when this was a template. + labels: | + automated + reviewers: $GITHUB_ACTOR + token: ${{secrets.GH_PAT}} + +##### Filing issues! + + # Issue for what repository settings need to be set + - name: New Course - Set Repository Settings + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Set Repository Settings + content-filepath: .github/automatic-issues/set-repo-settings.md + labels: automated training issue + + # Issue for what needs to be edited + - name: New Course - Templates to Edit + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Templates to Edit + content-filepath: .github/automatic-issues/templates-to-edit.md + labels: automated training issue + + # Issue for how to enroll repo for updates + - name: New Course - Template Update Enrollment + uses: peter-evans/create-issue-from-file@v4 + with: + title: New Course - Template Update Enrollment + content-filepath: .github/automatic-issues/update-enrollment.md + labels: automated training issue + + # Issue for adding a method of feedback + - name: Reminder - Add a method of user feedback + uses: peter-evans/create-issue-from-file@v4 + with: + title: Reminder - Add user feedback method + content-filepath: .github/automatic-issues/add-feedback-method.md + labels: automated training issue + + - name: Get organization name + id: get_org_name + run: | + org_name=$(dirname ${{github.repository}}) + echo "org_name=$org_name" >> $GITHUB_OUTPUT + echo $org_name + + # Issue for adding the course to the jhudsl library + - name: Reminder - Add to jhudsl library + if: ${{ steps.get_org_name.outputs.org_name == 'jhudsl' }} + uses: peter-evans/create-issue-from-file@v4 + with: + title: Reminder - Add to jhudsl library + content-filepath: .github/automatic-issues/add-to-library.md + labels: automated training issue diff --git a/.github/workflows/test-send-updates.yml b/.github/workflows/test-send-updates.yml new file mode 100644 index 0000000..61e6b71 --- /dev/null +++ b/.github/workflows/test-send-updates.yml @@ -0,0 +1,40 @@ +# Candace Savonen Aug 2021 + +name: Test Sync Files + +on: + workflow_dispatch: + inputs: + repo: + description: 'What repo to test on e.g. jhudsl/OTTR_Template_Test' + required: true + default: 'jhudsl/OTTR_Template_Test' + +jobs: + test-sync: + runs-on: ubuntu-latest + container: + image: jhudsl/base_ottr:main + + steps: + - name: Checkout Repository + uses: actions/checkout@master + + - name: Login as github actions bot + 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' + + - name: Set up test-sync.yml + run: | + cp .github/sync.yml .github/test-sync.yml + # Switch out repo argument + Rscript --vanilla .github/switch_sync_repo.R --repo ${{ github.event.inputs.repo }} + + - name: Run Mechanics File Sync + uses: BetaHuhn/repo-file-sync-action@v1.17.21 + with: + GH_PAT: ${{ secrets.GH_PAT }} + COMMIT_BODY: "test-run" + CONFIG_PATH: .github/test-sync.yml From 0c25532c15e39b6c2f3ee8d5aa745904db26d8b0 Mon Sep 17 00:00:00 2001 From: cansavvy Date: Tue, 17 Sep 2024 20:03:22 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=94=84=20Created=20local=20'.github/s?= =?UTF-8?q?witch=5Fsync=5Frepo.R'=20from=20remote=20'.github/switch=5Fsync?= =?UTF-8?q?=5Frepo.R'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit release- --- .github/switch_sync_repo.R | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/switch_sync_repo.R diff --git a/.github/switch_sync_repo.R b/.github/switch_sync_repo.R new file mode 100644 index 0000000..7975abf --- /dev/null +++ b/.github/switch_sync_repo.R @@ -0,0 +1,39 @@ +#!/usr/bin/env Rscript + +# This script switches the repo entry for the yaml file to whatever is specified +# Written by Candace Savonen Jan 2022 + +if (!("optparse" %in% installed.packages())){ + install.packages("optparse") +} + +library(optparse) + +option_list <- list( + optparse::make_option( + c("--repo"), + type = "character", + default = "jhudsl/OTTR_Template_Test", + help = "GitHub repository name, e.g. jhudsl/OTTR_Template_Test", + ) +) + +# Read the arguments passed +opt_parser <- optparse::OptionParser(option_list = option_list) +opt <- optparse::parse_args(opt_parser) + +# Find .git root directory +root_dir <- rprojroot::find_root(rprojroot::has_dir(".git")) + +# Get test sync yaml path +sync_file_path <- file.path(root_dir, ".github", "test-sync.yml") + +yaml_contents <- yaml::yaml.load_file(sync_file_path) + +# Only keep first grouping +yaml_contents$group <- yaml_contents$group[[1]] + +# Switch out repo +yaml_contents$group$repos <- opt$repo + +yaml::write_yaml(yaml_contents, sync_file_path) From 4f53cacea6ef8927e64ad22aceff5a185332feec Mon Sep 17 00:00:00 2001 From: Carrie Wright <23014755+carriewright11@users.noreply.github.com> Date: Tue, 24 Sep 2024 12:32:40 -0400 Subject: [PATCH 4/5] Update config_automation.yml need to keep ocs_guide docker image --- config_automation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config_automation.yml b/config_automation.yml index 460f418..a028a0d 100644 --- a/config_automation.yml +++ b/config_automation.yml @@ -27,4 +27,4 @@ make-book-txt: yes # What docker image should be used for rendering? # The default is jhudsl/base_ottr:main -rendering-docker-image: 'jhudsl/base_ottr:main' +rendering-docker-image: 'jhudsl/ocs_guide:main' From d207dca82454db38774ef17895adc018aa1d75b1 Mon Sep 17 00:00:00 2001 From: Candace Savonen Date: Wed, 25 Sep 2024 10:14:56 -0400 Subject: [PATCH 5/5] try removing the token part --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 5cd835e..f5ffef0 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -17,7 +17,6 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - token: ${{ secrets.GH_PAT }} # Use the yaml-env-action action. - name: Load environment from YAML