33on :
44 schedule :
55 - cron : " 24 06 * * 1"
6+ workflow_dispatch :
67 push :
78 branches :
89 - main
@@ -48,15 +49,16 @@ jobs:
4849 config :
4950 - {os: windows-latest, r: 'release'}
5051 - {os: macOS-latest, r: 'release'}
52+ - {os: macos-15-intel, r: 'release'} # Until Intel architecture retired 2027-11
5153 - {os: ubuntu-22.04, r: '4.1',
5254 rspm : " https://packagemanager.rstudio.com/cran/__linux__/jammy/latest" }
53- - {os: ubuntu-latest , r: 'release',
55+ - {os: ubuntu-24.04 , r: 'release',
5456 rspm : " https://packagemanager.rstudio.com/cran/__linux__/noble/latest" }
5557 - {os: ubuntu-latest, r: 'devel',
5658 rspm : " https://packagemanager.rstudio.com/cran/__linux__/noble/latest" }
5759
5860 env :
59- _R_CHECK_CRAN_INCOMING_ : true # Seemingly not set by --as-cran
61+ _R_CHECK_CRAN_INCOMING_ : ${{ github.event_name == 'pull_request' }}
6062 _R_CHECK_FORCE_SUGGESTS_ : false # CRAN settings
6163 R_COMPILE_AND_INSTALL_PACKAGES : ' never'
6264 _R_CHECK_THINGS_IN_CHECK_DIR_ : false
@@ -70,18 +72,25 @@ jobs:
7072 - name : Checkout git repo
7173 uses : actions/checkout@v5
7274
75+ - name : Temporarily bump package version
76+ run : |
77+ old_version=$(grep "Version:" DESCRIPTION | awk '{print $2}')
78+ if [[ $(echo "$old_version" | tr -cd '.' | wc -c) -eq 2 ]]; then
79+ new_version="${old_version}.8888"
80+ if [[ "$RUNNER_OS" == "macOS" ]]; then
81+ sed -i "" "s/Version: .*/Version: ${new_version}/" DESCRIPTION
82+ else
83+ sed -i "s/Version: .*/Version: ${new_version}/" DESCRIPTION
84+ fi
85+ fi
86+ shell : bash
87+
7388 - name : Set up R
7489 uses : r-lib/actions/setup-r@v2
7590 with :
7691 r-version : ${{ matrix.config.r }}
7792 extra-repositories : https://ms609.github.io/packages/
7893
79- - name : Install apt packages (Linux)
80- if : runner.os == 'Linux'
81- run : |
82- sudo apt-get update
83- sudo apt-get install -y texlive-latex-base libglpk-dev texlive-fonts-recommended
84-
8594 - name : Set up R dependencies (Windows)
8695 if : runner.os == 'Windows'
8796 uses : r-lib/actions/setup-r-dependencies@v2
@@ -112,17 +121,30 @@ jobs:
112121 - name : Set up pandoc
113122 uses : r-lib/actions/setup-pandoc@v2
114123
115- - name : Check with incoming checks (PR)
116- if : github.event_name == 'pull_request'
124+ - name : Check package
117125 uses : r-lib/actions/check-r-package@v2
118126
119- - name : Check without incoming checks (push/schedule)
120- if : github.event_name == 'push' || github.event_name == 'schedule'
121- uses : r-lib/actions/check-r-package@v2
122- with :
123- args : " --no-incoming-check"
124-
125127 - name : Code coverage
126128 if : runner.os == 'Windows'
127129 run : covr::codecov()
128130 shell : Rscript {0}
131+
132+ - name : Notify on failure
133+ if : failure() && github.event_name == 'schedule'
134+ uses : actions/github-script@v7
135+ with :
136+ github-token : ${{ secrets.GITHUB_TOKEN }}
137+ script : |
138+ await github.rest.issues.createComment({
139+ owner: context.repo.owner,
140+ repo: context.repo.repo,
141+ issue_number: 164,
142+ body: 'Scheduled workflow has failed: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}'
143+ });
144+
145+ await github.rest.issues.update({
146+ owner : context.repo.owner,
147+ repo : context.repo.repo,
148+ issue_number : 164,
149+ state : ' open'
150+ });
0 commit comments