Skip to content

Commit

Permalink
def files, bash scipts for containers, testing yaml
Browse files Browse the repository at this point in the history
  • Loading branch information
kyle-messier committed Oct 1, 2024
1 parent bad244e commit 30b0f89
Show file tree
Hide file tree
Showing 7 changed files with 148 additions and 5 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/test-container-dl-calc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: CI tests for download and calculate with Apptainer

on:
push:
branches:
- [main, dev]
pull_request:
branches:
- [main, dev]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Install Apptainer dependencies
run: |
sudo apt-get update && sudo apt-get install -y \
libseccomp-dev \
squashfs-tools \
cryptsetup \
wget
- name: Install Apptainer
run: |
wget https://github.com/apptainer/apptainer/releases/download/v1.1.0/apptainer-1.1.0.tar.gz
tar -xvf apptainer-1.1.0.tar.gz
cd apptainer-1.1.0
./mconfig && make -C builddir && sudo make -C builddir install
- name: Restore .sif file from cache
id: cache-sif
uses: actions/cache@v3
with:
path: beethoven_dl_calc.sif
key: sif-cache-${{ hashFiles('../../containers/beethoven_dl_calc.def') }}
restore-keys: sif-cache-

- name: Build the Apptainer container (if cache miss)
if: steps.cache-sif.outputs.cache-hit != 'true'
run: |
apptainer build my_container.sif path/to/Singularity.def
- name: Cache the .sif file
if: steps.cache-sif.outputs.cache-hit != 'true'
uses: actions/cache@v3
with:
path: beethoven_dl_calc.sif
key: sif-cache-${{ hashFiles('../../containers/beethoven_dl_calc.def') }}

- name: Create run_dl_calc_tests.R dynamically
run: |
echo 'testthat::test_file("/mnt/tests/testthat/test_download.R")' > tests/testthat/run_dl_calc_tests.R
echo 'testthat::test_file("/mnt/tests/testthat/test_calculate.R")' >> tests/testthat/run_dl_calc_tests.R
- name: Run tests inside the container
run: |
apptainer exec \
--bind $PWD/inst:/pipeline \
--bind $PWD/input:/input \
--bind $PWD/_targets:/opt/_targets \
--bind $PWD:/mnt \
Rscript mnt/tests/testhat/run_dl_calc_tests.R
6 changes: 1 addition & 5 deletions container/beethoven_dl_calc.def
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
BootStrap: docker
From: rocker/geospatial:latest

%files
/ddn/gs1/tools/set/R432/lib64/R/library /R_packages


%post
# Update package list
apt-get update
Expand All @@ -27,7 +23,7 @@ From: rocker/geospatial:latest
mkdir /input
mkdir /opt/_targets

Rscript -e "install.packages(c('pak','targets','tarchetypes','crew','crew.cluster'))"
Rscript -e "install.packages(c('pak','targets','tarchetypes','crew','crew.cluster','testthat'))"
Rscript -e "pak::pkg_install('NIEHS/amadeus')"
Rscript -e "remotes::install_github('NIEHS/beethoven')"

Expand Down
8 changes: 8 additions & 0 deletions container/build_dl_calc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# usage: build_apptainer_image.sh [full file path]
# where full file path ends with .sif, with full directory path to save the image
# after the image is built, group write/execution privileges are given

# Recommended to run this script interactively via `sh build_dl_calc.sh`
apptainer build --fakeroot beethoven_dl_calc.sif beethoven_dl_calc.def
23 changes: 23 additions & 0 deletions container/run_container_dl_calc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash
#SBATCH --job-name=beethoven_001
#SBATCH --partition=geo
#SBATCH --mem=128G
#SBATCH --cpus-per-task=4
#SBATCH --ntasks=16
#SBATCH --output=slurm_messages/slurm-%j.out
#SBATCH --error=slurm_messages/slurm-%j.err
#SBATCH --mail-user=kyle.messier@nih.gov
#SBATCH --mail-type=ALL




apptainer exec \
--bind $PWD/inst:/pipeline \
--bind $PWD/input:/input \
--bind $PWD/_targets:/opt/_targets \
--bind $PWD:/mnt \
beethoven_dl_calc.sif \
Rscript /mnt/run.R


23 changes: 23 additions & 0 deletions container/run_dl_calc_local_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash
#SBATCH --job-name=dl_calc_tests
#SBATCH --partition=geo
#SBATCH --mem=128G
#SBATCH --cpus-per-task=4
#SBATCH --ntasks=16
#SBATCH --output=slurm_messages/slurm-%j.out
#SBATCH --error=slurm_messages/slurm-%j.err
#SBATCH --mail-user=kyle.messier@nih.gov
#SBATCH --mail-type=ALL




apptainer exec \
--bind $PWD/../inst:/pipeline \
--bind $PWD/../input:/input \
--bind $PWD/../_targets:/opt/_targets \
--bind $PWD/..:/mnt \
beethoven_dl_calc.sif \
Rscript /mnt/tests/testthat/test_download.R


13 changes: 13 additions & 0 deletions tests/testthat/test_calculate.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
################################################################################
##### unit and integration tests for covariate calculations
##### Currently arbitrary placeholders
#####

################################################################################
#####
testthat::test_that("calculate targets work", {

a <- 1
testthat::expect_equal(a, 1)

})
13 changes: 13 additions & 0 deletions tests/testthat/test_download.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
################################################################################
##### unit and integration tests for data download
##### Currently arbitrary placeholders
#####

################################################################################
##### loadargs
testthat::test_that("download targets work", {

a <- 1
testthat::expect_equal(a, 1)

})

0 comments on commit 30b0f89

Please sign in to comment.