Packaging now works. Updated the DESCRIPTION #101
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Unit tests: macOS" | |
on: | |
push: | |
branches: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
test: | |
name: tests on macOS with R ${{ matrix.R }} | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
R: ['4.1.0'] | |
python-version: ['3.10'] # Explicitly define Python version in matrix | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup R | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.R }} | |
Ncpus: 2 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
- name: Query dependencies | |
run: | | |
install.packages('remotes') | |
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) | |
shell: Rscript {0} | |
- name: Cache R packages | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: | | |
${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-R${{ matrix.R }}-2-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ runner.os }}-R${{ matrix.R }}-2- | |
- name: Install packages | |
run: | | |
install.packages(c("devtools")) | |
remotes::install_deps(dependencies = TRUE) | |
remotes::install_cran("rcmdcheck") | |
shell: Rscript {0} | |
- name: Setup Python environment | |
shell: Rscript {0} | |
run: | | |
library(reticulate) | |
# Use the GitHub Actions Python | |
Sys.setenv(RETICULATE_PYTHON = Sys.which("python")) | |
# Install pip packages | |
system2("pip", c("install", "--upgrade", "pip")) | |
system2("pip", c("install", "--upgrade", "numpy", "pandas", "matplotlib")) | |
system2("pip", c("install", "--upgrade", "git+https://github.com/SABS-R3-Epidemiology/epiabm.git@main#egg=pyEpiabm&subdirectory=pyEpiabm")) | |
# Verify Python configuration | |
py_config <- reticulate::py_config() | |
message("Python configuration:") | |
message(paste("Python version:", py_config$version)) | |
message(paste("Python path:", py_config$python)) | |
# Test imports | |
reticulate::py_run_string(" | |
import numpy | |
import pandas | |
import matplotlib | |
import pyEpiabm | |
print('All required Python packages successfully imported') | |
") | |
- name: Check | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
RETICULATE_PYTHON: ${{ env.pythonLocation }}/python | |
run: | | |
options(crayon.enabled = TRUE) | |
rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "error", check_dir = "check") | |
shell: Rscript {0} | |
- name: Show testthat output | |
if: always() | |
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true |