Skip to content

Commit

Permalink
Merge branch 'main' into replace-devtools-with-pak
Browse files Browse the repository at this point in the history
  • Loading branch information
walkowif committed Jun 26, 2024
2 parents bd04b23 + 9993cb3 commit 21e7a47
Show file tree
Hide file tree
Showing 8 changed files with 191 additions and 21 deletions.
29 changes: 22 additions & 7 deletions .github/workflows/build-check-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -694,9 +694,12 @@ jobs:
if: inputs.skip-r-cmd-check != true
run: |
find ${{ env.PKGNAME }}.Rcheck -type f -regextype posix-egrep \
-regex '.*00install.out|.*00check.log|.*00build.out' -print0 | while IFS= read -r -d $'\0' file; do
printf "==================================\n$file\n==================================\n"
cat $file
-regex '.*00install.out|.*00check.log|.*00build.out|.*-Ex.Rout|.*tests/testthat\.Rout.*' \
-print0 | while IFS= read -r -d $'\0' file; do
# Grouping allows to collapse/expand logs when needed.
echo "::group::$file"
cat $file
echo "::endgroup::"
done
shell: bash

Expand Down Expand Up @@ -782,6 +785,18 @@ jobs:
path: ${{ github.event.repository.name }}/${{ inputs.package-subdirectory }}/${{ env.PKGBUILD }}
name: ${{ env.PKGBUILD }}

- name: Upload logs artifact 🗞️
uses: actions/upload-artifact@v4
with:
path: |
${{ env.PKGNAME }}.Rcheck/*00install.out
${{ env.PKGNAME }}.Rcheck/*00check.log
${{ env.PKGNAME }}.Rcheck/*00build.out
${{ env.PKGNAME }}.Rcheck/*-Ex.Rout
${{ env.PKGNAME }}.Rcheck/tests/testthat.Rout
${{ env.PKGNAME }}.Rcheck/tests/testthat.Rout.fail
name: check-logs-${{ env.PKGNAME }}-${{ inputs.concurrency-group }}

publish-junit-html-report:
name: Publish JUnit HTML report 📰
runs-on: ubuntu-latest
Expand Down Expand Up @@ -813,7 +828,7 @@ jobs:

- name: Upload JUnit HTML report to GitHub pages 🗞️
if: needs.build-install-check.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./unit-test-report
Expand All @@ -823,7 +838,7 @@ jobs:
if: >
needs.build-install-check.outputs.is-latest-tag == 'true'
&& needs.build-install-check.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./unit-test-report
Expand All @@ -833,15 +848,15 @@ jobs:
if: >
needs.build-install-check.outputs.is-rc-tag == 'true'
&& needs.build-install-check.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./unit-test-report
destination_dir: ${{ inputs.release-candidate-alt-name }}/unit-test-report

- name: Upload JUnit HTML report to GitHub pages (non-multiversion) 🗞️
if: needs.build-install-check.outputs.multiversion-docs == 'false'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./unit-test-report
Expand Down
78 changes: 74 additions & 4 deletions .github/workflows/links.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,29 @@ on:
workflow_dispatch:
workflow_call:
inputs:
additional_args:
lychee-additional-args:
description: Additional arguments to pass to lychee
required: false
type: string
default: "--exclude-private"
lychee-fail:
description: Fail workflow run on error (i.e. when lychee exit code is not 0)
required: false
type: boolean
default: false
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 +51,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 @@ -65,18 +84,69 @@ jobs:
SKIP_INSTRUCTION: "[skip links]"

- name: Check URLs in docs 🔬
uses: lycheeverse/lychee-action@v1.8.0
uses: lycheeverse/lychee-action@v1.10.0
with:
args: >-
--exclude-private
--exclude "https://github.com.*.git|https://insightsengineering.github.io.*|lewagon.*|knightdave.*|.*users.noreply.github.com|lycheeverse.*"
--verbose
--no-progress
${{ inputs.additional_args }}
${{ inputs.lychee-additional-args }}
**/*.md
**/*.html
**/*.Rmd
**/*.yaml
**/*.yml
*.md
fail: ${{ inputs.lychee-fail }}
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: |
# For unexplained reasons, parallel = FALSE is required to prevent some false positives.
bad_urls <- nrow(print(urlchecker::url_check(".", parallel = FALSE)))
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 }}
8 changes: 4 additions & 4 deletions .github/workflows/test-coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ jobs:

- name: Upload coverage report to GitHub pages 🗞️
if: needs.coverage.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./coverage-report
Expand All @@ -429,7 +429,7 @@ jobs:
if: >
needs.coverage.outputs.is-latest-tag == 'true'
&& needs.coverage.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./coverage-report
Expand All @@ -439,15 +439,15 @@ jobs:
if: >
needs.coverage.outputs.is-rc-tag == 'true'
&& needs.coverage.outputs.multiversion-docs == 'true'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./coverage-report
destination_dir: ${{ inputs.release-candidate-alt-name }}/coverage-report

- name: Upload coverage report to GitHub pages (non-multiversion) 🗞️
if: needs.coverage.outputs.multiversion-docs == 'false'
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ steps.github-token.outputs.token }}
publish_dir: ./coverage-report
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/verdepcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ on:
Strategy to test package dependencies. One of: min_isolate, min_cohort, release, max.
required: true
type: string
extra-deps:
description: |
Extra dependencies specified similarly as in the `DESCRIPTION` file,
i.e. `"<package name> (<operator> <version>)"` where both `<operator>`
and `<version>` are optional. Multiple entries are possible separated by `";"`.
required: false
default: ""
type: string
additional-env-vars:
description: |
Extra environment variables, as a 'key=value' pair, with each pair on a new line.
Expand Down Expand Up @@ -104,10 +112,11 @@ jobs:
uses: insightsengineering/r-verdepcheck-action@main
with:
github-token: ${{ steps.github-token.outputs.token }}
check-args: ${{ inputs.check-args }}
extra-deps: ${{ inputs.extra-deps }}
build-args: ${{ inputs.build-args }}
additional-env-vars: ${{ inputs.additional-env-vars }}
check-args: ${{ inputs.check-args }}
strategy: ${{ env.strategy }}
additional-env-vars: ${{ inputs.additional-env-vars }}

- name: GChat notification 🔔
if: (failure() || cancelled()) && steps.verdepcheck.outcome != 'success' && env.gchat_webhook != ''
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/wasm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
name: WASM 🧭

on:
workflow_call:
inputs:
package-subdirectory:
description: Subdirectory in the repository, where the R package is located.
required: false
type: string
default: ""

jobs:
wasm:
name: WASM 🧭
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Get branch names 🌿
id: branch-name
uses: tj-actions/branch-names@v7

- name: Checkout repo 🛎
uses: actions/[email protected]
with:
ref: ${{ steps.branch-name.outputs.head_ref_branch }}
path: ${{ github.event.repository.name }}

- name: Get package name 📦
run: |
echo "PKGNAME=$(echo $(awk -F: '/Package:/{gsub(/[ ]+/,"") ; print $2}' DESCRIPTION))" >> $GITHUB_ENV
shell: bash
working-directory: ${{ github.event.repository.name }}/${{ inputs.package-subdirectory }}

- name: Build WASM packages 🧭
uses: r-wasm/actions/build-rwasm@v1
with:
packages: |
${{ github.repository_owner }}/${{ env.PKGNAME }}@${{ steps.branch-name.outputs.tag }}
- name: Upload WASM packages ⬆
uses: actions/upload-artifact@v4
with:
name: wasm-${{ env.PKGNAME }}
path: |
_site/bin/emscripten/contrib/*/${{ env.PKGNAME }}*.tgz
_site/src/contrib/${{ env.PKGNAME }}*.tar.gz
- name: Check if release exists ⚙️
id: check-if-release-exists
uses: insightsengineering/release-existence-action@v1

- name: Download artifact ⏬
if: >-
steps.check-if-release-exists.outputs.release-exists == 'true'
uses: actions/download-artifact@v4
with:
name: wasm-${{ env.PKGNAME }}
path: wasm-${{ env.PKGNAME }}

- name: Prepare WASM release artifact 🗜️
if: >-
steps.check-if-release-exists.outputs.release-exists == 'true'
run: |
zip -r9 wasm-${{ env.PKGNAME }}.zip wasm-${{ env.PKGNAME }}
- name: Upload WASM build to release 🔼
if: >-
steps.check-if-release-exists.outputs.release-exists == 'true'
uses: svenstaro/upload-release-action@v2
with:
file: ./wasm-${{ env.PKGNAME }}.zip
asset_name: wasm-${{ env.PKGNAME }}.zip
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
overwrite: true
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,6 @@ repos:
files: '\.Rhistory|\.RData|\.Rds|\.rds$'
# `exclude: <regex>` to allow committing specific files.
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.40.0
rev: v0.41.0
hooks:
- id: markdownlint
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Type: Package
Package: r.pkg.template
Title: R Package Template
Version: 0.1.0.9159
Date: 2024-05-14
Version: 0.1.0.9169
Date: 2024-06-25
Authors@R:
person("insightsengineering", , , "[email protected]", role = c("aut", "cre"))
Description: R package template with GitHub Actions workflows included.
Expand Down
2 changes: 1 addition & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# r.pkg.template 0.1.0.9159
# r.pkg.template 0.1.0.9169

### New features

Expand Down

0 comments on commit 21e7a47

Please sign in to comment.