Skip to content

Commit

Permalink
Updates to workflow and add pkgdown
Browse files Browse the repository at this point in the history
  • Loading branch information
HenrikSpiegel committed Mar 11, 2024
1 parent 085e0b6 commit 8d23ea0
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 31 deletions.
5 changes: 2 additions & 3 deletions .github/workflows/Check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,10 @@ jobs:
name: Version Bump 🤜🤛
if: github.event_name == 'push' && github.ref != 'refs/heads/main'
uses: insightsengineering/r.pkg.template/.github/workflows/version-bump.yaml@main
with:
disable-precommit-autoupdate: true
secrets:
REPO_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# roxygen:
# name: Roxygen 📦
# uses: ./.github/workflows/Roxygen.yaml


54 changes: 48 additions & 6 deletions .github/workflows/Test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ on:

name: test-coverage

# concurrency:
# group: roxygen-${{ github.event.pull_request.number || github.ref }}
# cancel-in-progress: true
permissions:
contents: read
pull-requests: write

jobs:
test-coverage:
Expand All @@ -24,23 +24,27 @@ jobs:

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::covr
extra-packages: |
any::covr
any::xml2
any::dplyr
any::knitr
needs: coverage

- name: Test coverage
run: |
covr::codecov(
quiet = FALSE,
clean = FALSE,
install_path = file.path(Sys.getenv("RUNNER_TEMP"), "package")
install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package")
)
shell: Rscript {0}

- name: Show testthat output
if: always()
run: |
## --------------------------------------------------------------------
find ${{ runner.temp }}/package -name 'testthat.Rout*' -exec cat '{}' \; || true
find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash

- name: Upload test results
Expand All @@ -49,3 +53,41 @@ jobs:
with:
name: coverage-test-failures
path: ${{ runner.temp }}/package

- name: Create Coverage Report for comment
run: |
covr::package_coverage() |>
covr::to_cobertura(filename = "cobertura.xml")
xml <- xml2::read_xml("cobertura.xml")
pkg_cov <- xml |>
xml2::xml_find_first("packages/package") |>
xml2::xml_attrs() |>
dplyr::bind_rows()
fnc_cov <- xml |>
xml2::xml_find_first("packages/package") |>
xml2::xml_find_all("classes/class") |>
xml2::xml_attrs() |>
lapply(dplyr::bind_rows)
res <- list(pkg_cov, fnc_cov) |>
dplyr::bind_rows() |>
dplyr::transmute(
Name = dplyr::coalesce(filename, name),
`Coverage (%)` = round(as.numeric(`line-rate`)*100, digits = 2)
) |>
knitr::kable()
c("# Code coverage", res) |>
writeLines(con = "coverage.md")
shell: Rscript {0}

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
recreate: true
header: coverage
path: coverage.md
44 changes: 22 additions & 22 deletions .github/workflows/fast-forward.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
name: Fast Forward PR
on:
issue_comment:
types: [created]
jobs:
fast_forward_job:
name: Fast Forward
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/fast-forward')
runs-on: ubuntu-latest
steps:
# To use this repository's private action, you must check out the repository
- name: Checkout
uses: actions/checkout@v2
# Basic use case example
- name: Fast Forward PR
id: ff-action
uses: endre-spotlab/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
success_message: 'Success! Fast forwarded ***target_base*** to ***source_head***! ```git checkout target_base && git merge source_head --ff-only``` '
failure_message: 'Failed! Cannot do fast forward! - try merging the target back into source first.'
name: Fast Forward PR
on:
issue_comment:
types: [created]

jobs:
fast_forward_job:
name: Fast Forward
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/fast-forward')
runs-on: ubuntu-latest
steps:
# To use this repository's private action, you must check out the repository
- name: Checkout
uses: actions/checkout@v2
# Basic use case example
- name: Fast Forward PR
id: ff-action
uses: endre-spotlab/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
success_message: 'Success! Fast forwarded ***target_base*** to ***source_head***! ```git checkout target_base && git merge source_head --ff-only``` '
failure_message: 'Failed! Cannot do fast forward! - try merging the target back into source first.'
87 changes: 87 additions & 0 deletions .github/workflows/pkgdown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Workflow adjusted from usethis::use_pkgdown_github_pages() to also publish pages from PRs in a subfolder

on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
release:
types: [published]
workflow_dispatch:

permissions:
contents: write
pull-requests: write

name: pkgdown

jobs:
pkgdown:
runs-on: ubuntu-latest
# Only restrict concurrency for non-PR jobs
concurrency:
group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::pkgdown, local::.
needs: website

- name: Build site
run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
shell: Rscript {0}

# If not pull request a brand new webpage is deployed

- name: Deploy to GitHub pages 🚀
if: github.event_name != 'pull_request'
uses: JamesIves/[email protected]
with:
clean: false
branch: gh-pages
folder: docs

# If pull request the webpage is deployed inside a dev/"PR number" folder for review

- name: Add pkgdown PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
recreate: true
header: pkgdown
message: |
# Github pages
Review the pkgdown webpage for the PR [here](https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/dev/${{ github.event.pull_request.number }})
- name: Copy page to temp folder
if: github.event_name == 'pull_request'
run: |
mkdir -p /home/runner/work/dev
cp -r ./docs/* /home/runner/work/dev
- name: Check out gh-pages branch
if: github.event_name == 'pull_request'
uses: actions/checkout@v4
with:
ref: gh-pages

- name: Copy and push to gh-pages
if: github.event_name == 'pull_request'
run: |
mkdir -p dev/${{ github.event.pull_request.number }}
cp -r /home/runner/work/dev/* ./dev/${{ github.event.pull_request.number }}
git config --global user.email "[email protected]"
git config --global user.name "Actions Robot From Github Actions"
git add .
git commit -m "Update gh pages from the PR"
git push
1 change: 1 addition & 0 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@ Remotes:
hta-pharma/chef
Config/testthat/edition: 3
VignetteBuilder: knitr
Config/testthat/parallel: true

0 comments on commit 8d23ea0

Please sign in to comment.