generated from pharmaverse/admiraltemplate
-
Notifications
You must be signed in to change notification settings - Fork 4
129 lines (117 loc) · 4.31 KB
/
r-cmd-check.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
on:
workflow_dispatch:
workflow_call:
inputs:
error-on:
description: Input for the 'error_on' parameter in rcmdcheck::rcmdcheck()
required: false
default: note
type: string
push:
branches:
- main
- devel
pull_request:
branches:
- main
- devel
name: R CMD Check
concurrency:
group: r-cmd-check-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
R-CMD-check:
runs-on: ubuntu-latest
container:
image: "ghcr.io/pharmaverse/admiralci-${{ matrix.config.r }}:latest"
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
if: >
!contains(github.event.commits[0].message, '[skip r-cmd-check]')
strategy:
fail-fast: false
matrix:
config:
- {r: '4.1', repos: 'https://packagemanager.posit.co/cran/2021-05-03/'}
- {r: '4.2', repos: 'https://packagemanager.posit.co/cran/2022-01-03/'}
- {r: '4.3', repos: 'https://packagemanager.posit.co/cran/__linux__/focal/latest'}
- {r: 'devel', repos: 'https://packagemanager.posit.co/cran/__linux__/focal/latest'} # not needed for devel ?
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: true
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
R_REPOS: ${{ matrix.config.repos }}
steps:
##################### BEGIN boilerplate steps #####################
- name: Get branch names
id: branch-name
uses: tj-actions/[email protected]
- name: Checkout repo (PR) 🛎
uses: actions/checkout@v3
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 repository
uses: actions/checkout@v3
if: github.event_name != 'pull_request'
with:
ref: ${{ steps.branch-name.outputs.head_ref_branch }}
- name: Restore cache
uses: actions/cache@v3
with:
path: |
~/.staged.dependencies
key: staged-deps
- name: Run Staged dependencies
uses: insightsengineering/staged-dependencies-action@v1
with:
run-system-dependencies: false
renv-restore: false
enable-check: false
cran-repos: "CRAN=${{ matrix.config.repos }}"
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
#####################c#####################
- name: Check Version
id: check_version
run: |
maintenance_version="F"
description_dat <- readLines("DESCRIPTION")
for (i in seq_along(description_dat)) {
if (grepl("^Version:", description_dat[i])) {
current_version <- sub("^Version: ", "", description_dat[i])
version_parts <- strsplit(current_version, "\\.")[[1]]
# check if maintenance version - if yes, temp update the DESCRIPTION for rcmdchecks
if (length(version_parts) == 4) {
print("Maintenance version detected (format X.Y.Z.M with M >= 9000)")
maintenance_version="T"
}
}
}
cat(paste("maintenance_version=", maintenance_version), file = Sys.getenv("GITHUB_OUTPUT"), append = TRUE)
shell: Rscript {0}
- name: Check
env:
_R_CHECK_FORCE_SUGGESTS_: false
run: |
if ( "${{ steps.check_version.outputs.maintenance_version }}" == "T" ){
Sys.setenv(_R_CHECK_CRAN_INCOMING_REMOTE_ = TRUE) # we do not check if package is suitable for publication on CRAN in case of maintenance version
}
if (!requireNamespace("rcmdcheck", quietly = TRUE)) install.packages("rcmdcheck")
options(crayon.enabled = TRUE)
check_error_on <- "${{ inputs.error-on }}"
if (check_error_on == "") {
check_error_on <- "note"
}
rcmdcheck::rcmdcheck(
args = c("--no-manual", "--as-cran"),
error_on = check_error_on,
check_dir = "check"
)
shell: Rscript {0}
- name: Upload check results
if: failure()
uses: actions/upload-artifact@main
with:
name: r${{ matrix.config.r }}-results
path: check