Skip to content

Commit

Permalink
Merge pull request #3 from jhudsl/css
Browse files Browse the repository at this point in the history
actions
  • Loading branch information
cansavvy authored Dec 19, 2024
2 parents 89046b3 + 8cb8172 commit 6d08bef
Show file tree
Hide file tree
Showing 10 changed files with 298 additions and 11 deletions.
Binary file added .DS_Store
Binary file not shown.
27 changes: 27 additions & 0 deletions .github/workflows/delete-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Candace Savonen Apr 2021

name: Delete Preview

on:
pull_request:
types: [closed]

jobs:
delete-preview:
runs-on: ubuntu-latest
steps:

# This is because if a PR is closed before a render finishes it won't find it.
- name: Sleep for 5 minutes
run: sleep 300s
shell: bash

# Check out current repository
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

# Delete the branch!
- name: Delete branch locally and remotely
run: git push origin --delete preview-${{ github.event.pull_request.number }} || echo "No branch to delete"
179 changes: 179 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@

# Candace Savonen Dec 2021
# Updated Aug 2024

name: Pull Request

on:
pull_request:
branches: [ main, staging ]

jobs:

yaml-check:
name: Load user automation choices
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_PAT }}

# 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.

# Delete the branch if this has been run before
- name: Delete branch locally and remotely
run: git push --force origin --delete preview-${{ github.event.pull_request.number }} || 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'
branch_name='preview-${{ github.event.pull_request.number }}'
echo branch doesnt exist
git checkout -b $branch_name || echo branch exists
git push --force --set-upstream origin $branch_name
shell: bash

outputs:
public_repository: "${{ steps.public_repository.outputs.public }}"
toggle_spell_check: "${{ env.SPELL_CHECK }}"
toggle_url_check: "${{ env.URL_CHECKER }}"
toggle_render_preview: "${{ env.RENDER_PREVIEW }}"
rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}"

########################## Make the error reports ##############################
spell-check:
name: Check spelling
needs: yaml-check
if: ${{needs.yaml-check.outputs.toggle_spell_check == 'yes'}}
uses: jhudsl/ottr-reports/.github/workflows/report-maker.yml@main
with:
check_type: spelling
error_min: 3
gh_pat: secrets.GH_PAT

url-check:
name: Check URLs
needs: yaml-check
if: ${{needs.yaml-check.outputs.toggle_url_check == 'yes'}}
uses: jhudsl/ottr-reports/.github/workflows/report-maker.yml@main
with:
check_type: urls
error_min: 0
gh_pat: secrets.GH_PAT

render-preview:
name: Render preview
needs: yaml-check
runs-on: ubuntu-latest
container:
image: ${{needs.yaml-check.outputs.rendering_docker_image}}
if: ${{needs.yaml-check.outputs.toggle_render_preview == 'yes'}}

steps:
- name: Checkout files
uses: actions/checkout@v4
with:
fetch-depth: 0

# Set up git checkout
- name: Set up git checkout
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'
branch_name='preview-${{ github.event.pull_request.number }}'
git fetch --all
git checkout $branch_name
git merge -s recursive --strategy-option=theirs origin/${{ github.head_ref }} --allow-unrelated-histories
shell: bash

# We want a fresh run of the renders each time - so first delete old html files
- name: Delete old *.html
run: Rscript -e "rmarkdown::clean_site(preview = FALSE)"

# Now we want to render all the html files from the Rmd files
- name: Run render html
id: site
run: Rscript -e "rmarkdown::render_site()"

# This checks on the steps before it and makes sure that they completed.
# If the renders didn't complete we don't want to commit the file changes
- name: Check on render steps
if: steps.site.outcome != 'success'
run: |
echo site status ${{steps.site.outcome}}
exit 1
- name: Website preview for download
run: zip website-preview.zip docs/* -r

# Commit the website files
- name: Commit rendered website files
id: commit
run: |
branch_name='preview-${{ github.event.pull_request.number }}'
git diff origin/main -- docs >/dev/null && changes=true || changes=false
echo "changes=$changes" >> $GITHUB_OUTPUT
git add . --force
git commit -m 'Render preview' || echo "No changes to commit"
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@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: latest commit

- name: Build components of the comment
id: build-components
run: |
course_name=$(head -n 1 _website.yml | cut -d'"' -f 2| tr " " "-")
website_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/index.html")
docs_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/website-preview.zip")
echo "zip_link=$docs_link" >> $GITHUB_OUTPUT
echo "website_link=$website_link" >> $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@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
:eyes: Quick [preview of website here](${{ steps.build-components.outputs.website_link }}) \*
:microscope: Comprehensive [download of the website here](${{ steps.build-components.outputs.zip_link }})
\* 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: No comment if no changes
if: steps.commit.outputs.changes == 'false'
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
The latest commit did not produce rendering changes.
_Updated at ${{ steps.build-components.outputs.time }} with changes from ${{ steps.build-components.outputs.commit_id }}_
edit-mode: replace
21 changes: 21 additions & 0 deletions _site.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: OTTR Cheatsheets
output_dir: 'docs'
navbar:
title: cheatsheets
left:
- text: ""
href: index.html
icon: fa-home
- text: Website Setup
href: website_setup.html


output:
html_document:
theme: cosmo
lib_dir: site_libs
self_contained: no
highlight: textmate
css: styles.css
includes:
in_header: resources/header.html
29 changes: 29 additions & 0 deletions config_automation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
##### Checks run at pull request #####
# Check quiz formatting
check-quizzes: no
# Check that urls in the content are not broken
url-checker: yes
# Render preview of content with changes (Rmd's and md's are checked)
render-preview: yes
# Spell check Rmds and quizzes
spell-check: yes
# Style any R code
style-code: no
# 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-leanpub: no
render-coursera: no

## Automate the creation of Book.txt file? TRUE/FALSE?
## This is only relevant if render-leanpub is yes, otherwise it will be ignored
make-book-txt: FALSE

# What docker image should be used for rendering?
# The default is jhudsl/base_ottr:main
rendering-docker-image: 'jhudsl/base_ottr:main'
4 changes: 2 additions & 2 deletions template.Rmd → index.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ knitr::opts_chunk$set(echo = TRUE)

## R Markdown

<input type="checkbox"> adfasfd
<input type="checkbox"> step

<input type="checkbox"> afdafsd
<input type="checkbox"> step


[this is a link](https://www.itcrtraining.org/)
Expand Down
28 changes: 28 additions & 0 deletions resources/dictionary.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
github
cheatsheet
css
custimization
cwrigh
Dockerfile
Dockerhub
favicon
GH
Github
GitHub
HTTPS
ITN
ITCR
lightblue
lightgreen
OTTR
Rmd
repo
subdir
th
tibble
www
automations
Bootstap
glyphicons
repo
RStudio
2 changes: 2 additions & 0 deletions resources/header.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<link rel="shortcut icon" href="resources/images/favicon.ico" />
<!--- go to https://favicon.io/favicon-converter/ to upload an image to make a new favicon.io. You will need to replace the current favicon.io image with the one in the downloaded directory from the website. The current image is in the resources/images/ directory --->
1 change: 1 addition & 0 deletions resources/ignore-urls.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://username.github.io/repository_name/
18 changes: 9 additions & 9 deletions website_setup.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ A. [Create a personal access token](https://docs.github.com/en/authentication/ke

<input type="checkbox"> Select **Generate new token (classic)** <img src="resources/icons/personal_access_tokens.png" alt="personal access token icon" class = icon>

<input type="checkbox"> Underneath **Select Scopes**, *check both* **repo** and **workflow**
<input type="checkbox"> Underneath **Select Scopes**, *check both* **repo** and **workflow**

<input type="checkbox"> Click: <div class = "github_button"><a href="https://github.com/settings/tokens/new"> Generate Token</a></div>

Expand All @@ -54,7 +54,7 @@ B. [Save the copied personal access token as a repository secret](https://docs.g

<input type="checkbox"> In your OTTR repository, go to **Settings** in the top navigation tabs <img src="resources/icons/settings_gear.png" alt="settings icon" class = icon>

<input type="checkbox"> Go to **Secrets and variables** in the side navigation <img src="resources/icons/secrets_and_variables.png" alt="secrets icon" class = icon>
<input type="checkbox"> Go to **Secrets and variables** in the side navigation <img src="resources/icons/secrets_and_variables.png" alt="secrets icon" class = icon>

<input type="checkbox"> Click on **Actions**

Expand All @@ -72,14 +72,14 @@ B. [Save the copied personal access token as a repository secret](https://docs.g

<input type="checkbox"> Go to **Pages** in the side navigation <img src="resources/icons/pages.png" alt="pages icon" class = icon>

<input type="checkbox"> In the **Build and deployment section**
<input type="checkbox"> In the **Build and deployment section**

1. <input type="checkbox"> Under **Source**, select **Deploy from a branch**
2. <input type="checkbox"> Under **Branch**, pick **main** and choose **/docs**, and click **Save**

<input type="checkbox"> at the button of the page, check **Enforce HTTPS**


1. <input type="checkbox"> Under **Source**, select **Deply from a branch**
2. <input type="checkbox"> Under **Branch**, pick **main** and choose **/docs**, and click **Save**

<input type="checkbox"> at the botton of the page, check **Enforce HTTPS**


## Enroll your OTTR repository for template updates

<input type="checkbox"> Refer to our Template Updates Cheatsheet
Expand Down

0 comments on commit 6d08bef

Please sign in to comment.