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/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index be33dbfc..00000000 --- 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/base_ottr - - # 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/base_ottr:latest jhudsl/base_ottr:$github.event.inputs.tag - docker push jhudsl/base_ottr:$github.event.inputs.tag diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml deleted file mode 100644 index e439ed9b..00000000 --- a/.github/workflows/docker-test.yml +++ /dev/null @@ -1,90 +0,0 @@ - -# Candace Savonen Apr 2022 - -name: Build Docker Image - -on: - workflow_dispatch: - inputs: - directory: - required: true - type: string - tag: - required: true - type: string - dockerhubpush: - description: 'Push to Dockerhub?' - required: false - default: 'false' - type: string - secrets: - GH_PAT: - required: true - DOCKERHUB_USERNAME: - required: false - DOCKERHUB_TOKEN: - required: false - -jobs: - - build-docker: - name: Build Docker image - runs-on: ubuntu-latest - - steps: - - name: checkout repo - uses: actions/checkout@v2 - - - name: Verify Dockerfiles changed? - uses: tj-actions/verify-changed-files@v8.8 - id: verify-changed-files - with: - files: | - ${{ inputs.directory }}/Dockerfile - ${{ inputs.directory }}/github_package_list.tsv - - - name: Login as jhudsl-robot - run: | - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" - - # 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- - - - name: Set up Docker Build - uses: docker/setup-buildx-action@v1 - - - name: Get token - run: echo ${{ secrets.GH_PAT }} > ${{ inputs.directory }}/git_token.txt - - - name: Build Docker image - uses: docker/build-push-action@v2 - with: - push: false - load: true - context: ${{ inputs.directory }} - file: ${{ inputs.directory }}/Dockerfile - tags: ${{ inputs.tag }} - - # Login to Dockerhub - - name: Login to DockerHub - if: ${{ 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: ${{ inputs.dockerhubpush != 'false' }} - run: docker push ${{ inputs.tag }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f7738894..97e665db 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,4 +1,5 @@ -# Candace Savonen Aug 2022 +# Candace Savonen 2021 +# Updated Jan 2023 name: Pull Request @@ -13,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 @@ -23,14 +25,6 @@ jobs: with: files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence. - - name: Verify Dockerfiles changed? - uses: tj-actions/verify-changed-files@v8.8 - id: verify-changed-files - with: - files: | - docker/Dockerfile - docker/github_package_list.tsv - # Delete the branch if this has been run before - name: Delete branch locally and remotely run: git push origin --delete preview-${{ github.event.pull_request.number }} || echo "No branch to delete" @@ -38,25 +32,26 @@ jobs: # Make the branch fresh - name: Make the branch fresh run: | - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' 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 echo branch exists remotely shell: bash + outputs: toggle_spell_check: "${{ env.SPELL_CHECK }}" toggle_style_code: "${{ env.STYLE_CODE }}" toggle_url_check: "${{ env.URL_CHECKER }}" toggle_quiz_check: "${{ env.CHECK_QUIZZES }}" + toggle_feedback_link: "${{ env.FEEDBACK_LINK }}" toggle_render_preview: "${{ env.RENDER_PREVIEW }}" - toggle_docker_build: "${{ env.DOCKER_BUILD }}" + toggle_student_guide: "${{ env.RENDER_STUDENT_GUIDE }}" rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" - render_student_guide: "${{ env.RENDER_STUDENT_GUIDE }}" - dockerfiles_changed: steps.verify-changed-files.outputs.files_changed build-collection: name: Build Collection @@ -79,6 +74,7 @@ jobs: check_type: spelling error_min: 3 gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} url-check: name: Check URLs @@ -89,6 +85,7 @@ jobs: check_type: urls error_min: 0 gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} quiz-check: name: Check quiz formatting @@ -99,6 +96,7 @@ jobs: check_type: quiz_format error_min: 0 gh_pat: secrets.GH_PAT + branch_name: ${GITHUB_HEAD_REF} ############################# Style the code ################################### style-code: @@ -111,7 +109,7 @@ jobs: steps: - name: Checkout files - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -137,16 +135,16 @@ jobs: steps: - name: Checkout files - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 # Set up git checkout - name: Set up git checkout run: | - git config --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' branch_name='preview-${{ github.event.pull_request.number }}' git fetch --all @@ -154,19 +152,56 @@ jobs: git merge -s recursive --strategy-option=theirs origin/${{ github.head_ref }} --allow-unrelated-histories shell: bash + # Make sure the link for AnVIL feedback is prepopulated for the specific course + - name: Set up feedback link + id: feedback + if: ${{needs.yaml-check.outputs.toggle_feedback_link == 'yes'}} + run: | + bash scripts/AnVIL_Feedback_Script.sh + git add _output.yml + git commit -m 'Set up feedback link' || echo "No changes to commit" + # Run bookdown rendering - name: Run bookdown render id: bookdown run: Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')" + # Render a student guide if specified. This is a bit clunky because + # Bookdown does not work well if the files aren't named as such in the + # root directory + - name: Run student guide render + if: ${{needs.yaml-check.outputs.toggle_student_guide == 'yes'}} + id: student_guide + run: | + mkdir tmp1 + mv _bookdown.yml _output.yml tmp1 + mv student-guide/_bookdown.yml student-guide/_output.yml . + Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')" + mv _bookdown.yml _output.yml student-guide + mv tmp1/_bookdown.yml tmp1/_output.yml . + rm -r tmp1 + git add student-guide/* + git commit -m 'Create student guide' || echo "No changes to commit" + + # 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()" + # 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' + if: steps.bookdown.outcome != 'success' || steps.tocless.outcome != 'success' run: | echo Bookdown status ${{steps.bookdown.outcome}} + echo Toc-less status ${{steps.tocless.outcome}} exit 1 + - 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 id: commit @@ -176,12 +211,12 @@ 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 - name: Find Comment - uses: peter-evans/find-comment@v1 + uses: peter-evans/find-comment@v2 id: fc with: issue-number: ${{ github.event.pull_request.number }} @@ -193,27 +228,37 @@ jobs: run: | course_name=$(head -n 1 student-guide/_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") + student_guide=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/student-guide/Student_Guide.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 "student_guide=$student_guide" >> $GITHUB_OUTPUT echo "time=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT echo "commit_id=$GITHUB_SHA" >> $GITHUB_OUTPUT echo ${{steps.commit.outputs.changes}} - name: Create or update comment if: steps.commit.outputs.changes == 'true' - uses: peter-evans/create-or-update-comment@v1 + uses: peter-evans/create-or-update-comment@v2 with: comment-id: ${{ steps.fc.outputs.comment-id }} 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 }}) + - :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 Student Guide [.docx file](${{ steps.build-components.outputs.student_guide }}) - _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 if: steps.commit.outputs.changes == 'false' - uses: peter-evans/create-or-update-comment@v1 + uses: peter-evans/create-or-update-comment@v2 with: comment-id: ${{ steps.fc.outputs.comment-id }} issue-number: ${{ github.event.pull_request.number }} @@ -222,57 +267,3 @@ jobs: _Updated at ${{ steps.build-components.outputs.time }} with changes from ${{ steps.build-components.outputs.commit_id }}_ edit-mode: replace - -############################## Build Docker #################################### - - build-docker: - name: Build Docker image - needs: yaml-check - runs-on: ubuntu-latest - if: ${{needs.yaml-check.outputs.toggle_docker_build == 'yes' && needs.yaml-check.outputs.dockerfiles_changed == 'true' && github.head_ref != 'repo-sync/OTTR_Template/default'}} - - steps: - - name: checkout repo - uses: actions/checkout@v3 - - - name: Verify Dockerfiles changed? - uses: tj-actions/verify-changed-files@v8.8 - id: verify-changed-files - with: - files: | - docker/Dockerfile - docker/github_package_list.tsv - - - name: Login as jhudsl-robot - run: | - git config --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" - - # 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- - - - name: Set up Docker Build - uses: docker/setup-buildx-action@v1 - - - name: Get token - run: echo ${{ secrets.GH_PAT }} > docker/git_token.txt - - - name: Build Docker image - uses: docker/build-push-action@v2 - with: - push: false - load: true - context: docker - file: docker/Dockerfile - tags: jhudsl/base_ottr diff --git a/.github/workflows/render-all.yml b/.github/workflows/render-all.yml index 85581d81..2c065a73 100644 --- a/.github/workflows/render-all.yml +++ b/.github/workflows/render-all.yml @@ -20,6 +20,7 @@ on: paths: - '**.Rmd' - assets/* + - quizzes/* jobs: @@ -28,7 +29,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 @@ -39,9 +40,10 @@ jobs: toggle_bookdown: "${{ env.RENDER_BOOKDOWN }}" toggle_coursera: "${{ env.RENDER_COURSERA }}" toggle_leanpub: "${{ env.RENDER_LEANPUB }}" + toggle_feedback_link: "${{ env.FEEDBACK_LINK }}" + toggle_student_guide: "${{ env.RENDER_STUDENT_GUIDE }}" rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}" toggle_quiz_check: "${{ env.CHECK_QUIZZES }}" - render_student_guide: "${{ env.RENDER_STUDENT_GUIDE }}" build-collection: name: Build Collection @@ -63,33 +65,41 @@ 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 --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' # We want a fresh run of the renders each time - name: Delete old docs/* run: rm -rf docs/* + # Make sure the link for AnVIL feedback is prepopulated for the specific course + - name: Set up feedback link + if: ${{needs.yaml-check.outputs.toggle_feedback_link == 'yes'}} + run: | + bash scripts/AnVIL_Feedback_Script.sh + git add _output.yml + git commit -m 'Set up feedback link' || echo "No changes to commit" + # Run bookdown rendering - name: Run bookdown render id: bookdown run: | Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all'); file.copy(from = 'assets', to = 'docs/assets', overwrite = TRUE)" - + # Render a student guide if specified. This is a bit clunky because # Bookdown does not work well if the files aren't named as such in the # root directory - name: Run student guide render - if: ${{needs.yaml-check.outputs.render_student_guide == 'yes'}} + if: ${{needs.yaml-check.outputs.toggle_student_guide == 'yes'}} id: student_guide run: | mkdir tmp1 @@ -99,6 +109,8 @@ jobs: mv _bookdown.yml _output.yml student-guide mv tmp1/_bookdown.yml tmp1/_output.yml . rm -r tmp1 + git add student-guide/* + git commit -m 'Create student guide' || echo "No changes to commit" # 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 @@ -114,14 +126,15 @@ jobs: 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 push origin main || echo "No changes to push" + git push -u origin main || echo "No changes to push" render-tocless: name: Render TOC-less version for Leanpub or Coursera - needs: [yaml-check, build-collection] + needs: [yaml-check, render-bookdown] runs-on: ubuntu-latest container: image: ${{needs.yaml-check.outputs.rendering_docker_image}} @@ -129,16 +142,16 @@ 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 --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' # Rendered content for Leanpub and Coursera is very similar. # This job creates a shared scaffold for both. @@ -151,11 +164,10 @@ jobs: env: GH_PAT: ${{ secrets.GH_PAT }} run: | - git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} 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 push origin main || echo "No changes to push" + git status docs/no_toc* + git push -u origin main || echo "No changes to push" render-leanpub: name: Finish Leanpub prep @@ -167,16 +179,16 @@ 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 --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' # Create screenshots - name: Run the screenshot creation @@ -185,44 +197,54 @@ 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) # We want a fresh run of the renders each time - - name: Delete old manuscript/ - run: rm -rf manuscript/ + - name: Delete manuscript/ + env: + 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 --set-upstream origin $branch_name --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: | Rscript -e "ottrpal::bookdown_to_embed_leanpub( render = FALSE, \ chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \ - make_book_txt = TRUE, \ + make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \ 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 = TRUE)" + make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))" # Commit the rendered Leanpub files - name: Commit rendered Leanpub files env: GH_PAT: ${{ secrets.GH_PAT }} run: | - git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY} + mkdir -p manuscript git add --force manuscript/* 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 push origin main || echo "No changes to push" + git push --force --set-upstream origin main || echo "No changes to push" render-coursera: name: Finish Coursera prep @@ -234,16 +256,16 @@ 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 --system --add safe.directory "$GITHUB_WORKSPACE" - git config --local user.email "itcrtrainingnetwork@gmail.com" - git config --local user.name "jhudsl-robot" + 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' # Run Coursera version - name: Convert Leanpub quizzes to Coursera @@ -252,14 +274,19 @@ jobs: run: Rscript -e "ottrpal::convert_coursera_quizzes()" # Commit the rendered bookdown 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 push origin main || echo "No changes to push" + git pull --rebase --allow-unrelated-histories --strategy-option=ours + 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 a2566cb1..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,31 +42,34 @@ 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 - echo "::set-output name=git_results::$results" - echo "::set-output name=leanpub_repo::$QUIZ_REPO" + echo "git_results=$results" >> $GITHUB_OUTPUT + echo "leanpub_repo=$QUIZ_REPO" >> $GITHUB_OUTPUT - 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 (from bookdown to quizzes repo) + cp bookdown/_bookdown.yml quizzes/_bookdown.yml - # Copy over _bookdown.yml - svn export --force https://github.com/${GITHUB_REPOSITORY}.git/branches/${GITHUB_REF#refs/heads/}/_bookdown.yml _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/GA_Script.Rhtml b/GA_Script.html similarity index 67% rename from GA_Script.Rhtml rename to GA_Script.html index 15ffa3f7..6e4025f6 100644 --- a/GA_Script.Rhtml +++ b/GA_Script.html @@ -1,12 +1,5 @@ - - -
-