Skip to content

Commit

Permalink
Add urlchecker (#235)
Browse files Browse the repository at this point in the history
  • Loading branch information
walkowif authored May 22, 2024
1 parent 2bbbae3 commit a9b1b3a
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/links.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ on:
required: false
type: string
default: ""
package-subdirectory:
description: Subdirectory in the repository, where the R package is located.
required: false
type: string
default: ""
link-checking-method:
description: |
Which link checking method should be used? Supported methods are:
lychee
urlchecker
required: false
type: string
default: "urlchecker"

concurrency:
group: links-${{ github.event.pull_request.number || github.ref }}
Expand All @@ -33,6 +46,7 @@ jobs:
if: >
!contains(github.event.commits[0].message, '[skip links]')
&& github.event.pull_request.draft == false
&& inputs.link-checking-method == 'lychee'
steps:
- name: Get branch names 🌿
id: branch-name
Expand Down Expand Up @@ -80,3 +94,52 @@ jobs:
**/*.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

urlchecker:
name: URL Checker 🔎
runs-on: ubuntu-latest
container:
image: rocker/tidyverse:latest
if: >
!contains(github.event.commits[0].message, '[skip links]')
&& github.event.pull_request.draft == false
&& inputs.link-checking-method == 'urlchecker'
steps:
- name: Get branch names 🌿
id: branch-name
uses: tj-actions/branch-names@v7

- name: Checkout repo (PR) 🛎
uses: actions/[email protected]
if: github.event_name == 'pull_request'
with:
ref: ${{ steps.branch-name.outputs.head_ref_branch }}
repository: ${{ github.event.pull_request.head.repo.full_name }}

- name: Checkout repo 🛎
uses: actions/[email protected]
if: github.event_name != 'pull_request'
with:
ref: ${{ steps.branch-name.outputs.head_ref_branch }}

- name: Check commit message 💬
run: |
git config --global --add safe.directory $(pwd)
export head_commit_message="$(git show -s --format=%B | tr '\r\n' ' ' | tr '\n' ' ')"
echo "head_commit_message = $head_commit_message"
if [[ $head_commit_message == *"$SKIP_INSTRUCTION"* ]]; then
echo "Skip instruction detected - cancelling the workflow."
exit 1
fi
shell: bash
env:
SKIP_INSTRUCTION: "[skip links]"

- name: Check URLs with urlchecker 🔬
run: |
bad_urls <- nrow(print(urlchecker::url_check(".")))
if (bad_urls > 0) {
stop("Looks like a total of ", bad_urls, " URL(s) were found! Please correct them.")
}
shell: Rscript {0}
working-directory: ${{ inputs.package-subdirectory }}

0 comments on commit a9b1b3a

Please sign in to comment.