Skip to content

Commit 1ce54da

Browse files
author
Joao Felipe Rocha
committed
R packages faster installation
1 parent decf059 commit 1ce54da

File tree

1 file changed

+38
-15
lines changed

1 file changed

+38
-15
lines changed

.github/workflows/run_tests.yml

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
if: "!contains(github.event.head_commit.message, 'ci skip')"
2020
env:
2121
RENV_PATHS_ROOT: ~/.local/share/renv
22+
R_LIBS_USER: /home/runner/work/_temp/Library
23+
R_PROFILE_USER: /home/runner/work/_temp/.Rprofile
2224

2325
strategy:
2426
fail-fast: false
@@ -44,7 +46,7 @@ jobs:
4446
if: runner.os == 'Linux'
4547
run: |
4648
sudo apt-get update -qq
47-
sudo apt-get install -y pandoc gfortran libblas-dev liblapack-dev libedit-dev llvm-dev libcurl4-openssl-dev ffmpeg libhdf5-dev libfribidi-dev libharfbuzz-dev
49+
sudo apt-get install -y pandoc gfortran libblas-dev liblapack-dev libedit-dev llvm-dev libcurl4-openssl-dev ffmpeg libhdf5-dev libfribidi-dev libharfbuzz-dev libxml2-dev libssl-dev
4850
4951
- name: Set up Python
5052
uses: actions/setup-python@v5
@@ -57,6 +59,9 @@ jobs:
5759
with:
5860
r-version: ${{ matrix.config.r }}
5961

62+
- name: Set up Pandoc
63+
uses: r-lib/actions/setup-pandoc@v2
64+
6065
- name: Cache Python packages
6166
uses: pat-s/always-upload-cache@v2
6267
with:
@@ -69,13 +74,14 @@ jobs:
6974
if: startsWith(runner.os, 'Linux')
7075
with:
7176
path: ${{ env.R_LIBS_USER }}
72-
key: ${{ runner.os }}-R-${{ steps.setup-r.outputs.installed-r-version }}-${{ hashFiles('DESCRIPTION') }}
77+
key: ${{ runner.os }}-R-${{ steps.setup-r.outputs.installed-r-version }}-${{ hashFiles('DESCRIPTION') }}-v2
7378
restore-keys: |
74-
${{ runner.os }}-R-${{ steps.setup-r.outputs.installed-r-version }}-
75-
79+
${{ runner.os }}-R-${{ steps.setup-r.outputs.installed-r-version }}-v2
7680
7781
- name: Install python tools
7882
run: |
83+
# Ensure pip is properly installed
84+
python -m ensurepip --upgrade || true
7985
python -m pip install --upgrade pip
8086
pip install --upgrade wheel setuptools
8187
@@ -84,21 +90,38 @@ jobs:
8490
pip install rpy2
8591
echo "LD_LIBRARY_PATH=$(python -m rpy2.situation LD_LIBRARY_PATH):${LD_LIBRARY_PATH}" >> $GITHUB_ENV
8692
87-
- name: Install scprep
88-
id: install-python-packages
93+
- name: Install core R packages
8994
run: |
90-
pip install --upgrade .[test]
91-
python -c "import scprep"
95+
install.packages(c("remotes", "devtools", "BiocManager"), repos = "https://cloud.r-project.org/")
96+
shell: Rscript {0}
97+
98+
- name: Install Bioconductor packages
99+
run: |
100+
BiocManager::install(c("splatter", "slingshot"), ask = FALSE, update = FALSE)
101+
shell: Rscript {0}
92102

93-
- name: Install R packages
94-
id: install-r-packages
103+
- name: Install GitHub packages
95104
run: |
96-
install.packages(c("BiocManager", "devtools"))
97-
BiocManager::install(c("splatter", "slingshot"))
98-
devtools::install_github("dynverse/dyngen")
99-
devtools::install_github("dynverse/dynwrap")
105+
remotes::install_github(c("dynverse/dyngen", "dynverse/dynwrap"), upgrade = "never")
100106
shell: Rscript {0}
101107

108+
- name: Verify R package installation
109+
run: |
110+
packages <- c("splatter", "slingshot", "dyngen", "dynwrap")
111+
for (pkg in packages) {
112+
if (!requireNamespace(pkg, quietly = TRUE)) {
113+
stop(paste("Package", pkg, "failed to install"))
114+
}
115+
cat("✓ Package", pkg, "installed successfully\n")
116+
}
117+
shell: Rscript {0}
118+
119+
- name: Install scprep
120+
id: install-python-packages
121+
run: |
122+
python -m pip install --upgrade .[test]
123+
python -c "import scprep"
124+
102125
- name: Run tests
103126
run: nose2 -vvv
104127

@@ -114,4 +137,4 @@ jobs:
114137
uses: actions/upload-artifact@v4
115138
with:
116139
name: ${{ matrix.config.name }}_results
117-
path: check
140+
path: check

0 commit comments

Comments
 (0)