-
Notifications
You must be signed in to change notification settings - Fork 0
109 lines (109 loc) · 3.43 KB
/
check_nn_versions.yaml
File metadata and controls
109 lines (109 loc) · 3.43 KB
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
---
name: R-CMD-check NN versions
on:
push:
branches:
- main
- master
pull_request:
branches:
- main
- master
workflow_dispatch:
workflow_call:
inputs:
use_local_setup_action:
description: Use composite .github/actions/setup/action.yaml to setup package specific needs
required: false
type: boolean
default: false
error-on:
description: 'What type of result should cause a build error?'
required: false
type: string
default: '"warning"'
generate_token:
description: Generate token from GitHub app
required: false
type: boolean
default: false
min_lock_date:
description: Minimum lock date to use for historic checks
required: false
type: string
default: '2000-01-01'
secrets:
TOKEN_APP_ID:
description: ID of the GitHub app used to generate a new token
required: false
TOKEN_APP_PRIVATE_KEY:
description: Private Key for the GitHub app used to generate a new token
required: false
permissions:
contents: read
jobs:
filter-nn-versions:
runs-on: macos-latest
outputs:
config: ${{ steps.filter.outputs.config }}
env:
MIN_LOCK_DATE: ${{ inputs.min_lock_date || '2000-01-01' }}
steps:
- name: NN lock dates and R versions
run: |
cat > config.json <<EOF
[
{"date":"2023-10-25","r":"4.3.1"},
{"date":"2024-08-06","r":"4.4.1"},
{"date":"2025-12-05","r":"4.5.2"}
]
EOF
- name: Filter lock dates
id: filter
run: |
echo "config=$(jq --arg date $MIN_LOCK_DATE --compact-output '[.[] | select(.date >= $date)]' config.json)" >> "$GITHUB_OUTPUT"
R-CMD-check:
needs: filter-nn-versions
runs-on: '${{ matrix.os }}'
name: '${{ matrix.os }} (R ${{ matrix.config.r }}, ${{ matrix.config.date }})'
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- windows-latest
- ubuntu-latest
config: ${{ fromJSON(needs.filter-nn-versions.outputs.config) }}
env:
R_KEEP_PKG_SOURCE: 'yes'
ERROR_ON_DEFAULT: '"warning"'
steps:
- uses: actions/checkout@v4
- name: Generate custom token
id: generate-token
if: ${{ inputs.generate_token }}
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.TOKEN_APP_ID }}
private-key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Package specific setup
if: ${{ inputs.use_local_setup_action }}
uses: ./.github/actions/setup
- uses: r-lib/actions/setup-pandoc@v2
- uses: r-lib/actions/setup-r@v2
with:
r-version: '${{ matrix.config.r }}'
use-public-rspm: false
cran: 'https://packagemanager.posit.co/cran/${{matrix.config.date}}'
extra-repositories: 'https://novonordisk-opensource.r-universe.dev'
- uses: r-lib/actions/setup-r-dependencies@v2
env:
GITHUB_PAT: ${{ steps.generate-token.outputs.token || secrets.GITHUB_TOKEN }}
with:
extra-packages: any::rcmdcheck, local::.
needs: check
- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
error-on: '${{ inputs.error-on || env.ERROR_ON_DEFAULT }}'