Skip to content

Commit

Permalink
Merge pull request #90 from brown-ccv/neur1630_fall
Browse files Browse the repository at this point in the history
Neur1630
  • Loading branch information
mirestrepo authored Jul 29, 2024
2 parents 2252bd4 + c71cf27 commit 38b202c
Show file tree
Hide file tree
Showing 8 changed files with 210 additions and 0 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/neur1630-fall-tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: tag-image-neur1630
on: [workflow_dispatch]

env:
CLASS: neur1630
TARGET: base
SQLITE: false
PYTHON_VERSION: "3.9.17"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]

- name: Set Up GCloud
uses: google-github-actions/[email protected]
with:
project_id: ${{ secrets.GCP_PROJECT_ID_JH_DOCKER }}
service_account_key: ${{ secrets.GCP_SA_KEY_JH_DOCKER }}
export_default_credentials: true

- name: Create Julia Environment Files
if: env.TARGET == 'r_julia'
run: |
sudo --preserve-env=CLASS docker-compose up julia_build
- name: Upload Julia Env Files to Google Storage Bucket
if: env.TARGET == 'r_julia'
run: |
gsutil cp -r requirements/classes/neur1630/julia_env gs://jupyterhub-environment-files/fall-2023/neur1630/past/${GITHUB_SHA}/julia
gsutil cp -r requirements/classes/neur1630/julia_env gs://jupyterhub-environment-files/fall-2023/neur1630/latest/julia
- name: Configure Docker
run: gcloud auth configure-docker

- name: Build and Push JH Image
run: |
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose up jh_image
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_REF##*/}
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_SHA}
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:latest
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:fall-2023
docker push gcr.io/jupyterhub-docker-images/neur1630:latest
docker push gcr.io/jupyterhub-docker-images/neur1630:fall-2023
docker push gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_REF##*/}
docker push gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_SHA}
- name: Upload Conda Env Files to Google Storage Bucket
run: |
gsutil cp -r requirements/out gs://jupyterhub-environment-files/fall-2023/neur1630/past/${GITHUB_SHA}/conda
gsutil cp -r requirements/out gs://jupyterhub-environment-files/fall-2023/neur1630/latest/conda
47 changes: 47 additions & 0 deletions .github/workflows/neur1630.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: build-image-neur1630
on:
push:
paths:
- 'requirements/classes/neur1630/**'
- 'Dockerfile'
- 'docker-compose.yml'
- 'scripts/**'
- '.github/workflows/neur1630.yml'
workflow_dispatch:

env:
CLASS: neur1630
TARGET: base
SQLITE: false
PYTHON_VERSION: "3.9.17"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]

- name: Set Up GCloud
uses: google-github-actions/[email protected]
with:
project_id: ${{ secrets.GCP_PROJECT_ID_JH_DOCKER }}
service_account_key: ${{ secrets.GCP_SA_KEY_JH_DOCKER }}
export_default_credentials: true

- name: Create Julia Environment Files
if: env.TARGET == 'r_julia'
run: |
sudo --preserve-env=CLASS docker-compose up julia_build
- name: Configure Docker
run: gcloud auth configure-docker
# - uses: satackey/[email protected]
# # Ignore the failure of a step and avoid terminating the job.
# continue-on-error: true
- name: Build and Push JH Image
run: |
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose up jh_image
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_REF##*/}
docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/neur1630:latest
docker push gcr.io/jupyterhub-docker-images/neur1630:latest
docker push gcr.io/jupyterhub-docker-images/neur1630:${GITHUB_REF##*/}
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ RUN jupyter kernelspec remove -f python3

COPY --chown=${NB_UID}:${NB_GID} requirements/classes/${CLASS} /home/$NB_USER/tmp/
COPY --chown=${NB_UID}:${NB_GID} requirements/classes/${CLASS}/condarc /home/$NB_USER/.mambarc
COPY --chown=${NB_UID}:${NB_GID} requirements/classes/${CLASS}/condarc /home/$NB_USER/.condarc

RUN mamba create --quiet --yes -p ${CONDA_DIR}/envs/${CLASS} python=${PYTHON_VERSION} && \
mamba install -y --name ${CLASS} --file /home/$NB_USER/tmp/requirements.txt && \
Expand Down
17 changes: 17 additions & 0 deletions requirements/classes/neur1630/condarc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# channel locations. These override conda defaults, i.e., conda will
# search *only* the channels listed here, in the order given.
# Use "defaults" to automatically include all default channels.
# Non-url channels will be interpreted as Anaconda.org usernames
# (this can be changed by modifying the channel_alias key; see below).
# The default is just 'defaults'.
channels:
- bioconda
- conda-forge
# - defaults

# Show channel URLs when displaying what is going to be downloaded
# and in 'conda list'. The default is False.
show_channel_urls: True

# For more information about this file see:
# https://conda.io/docs/user-guide/configuration/use-condarc.html
12 changes: 12 additions & 0 deletions requirements/classes/neur1630/packages.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Use this script to install packages via CRAN, for example:

# NOTE: Code below shows how you install R packages from CRAN and Bioconductor. For CRAN packages, you can use
# the standard install.packages() function; for Bioconductor packages, however, you
# must first install BiocManager and then use that for installs.

# install.packages("BiocManager", dependencies=TRUE, repos='http://cran.rstudio.com/')
# install.packages(c("ggplot2", "pheatmap", "RColorBrewer", "PoiClaClu",
# "patchwork", "tidyr", "GGally"), dependencies=TRUE,
# repos='http://cran.rstudio.com/')
# BiocManager::install(c("airway", "DESeq2", "vsn", "biomaRt",
# "AnnotationHub", "SummarizedExperiment"))
5 changes: 5 additions & 0 deletions requirements/classes/neur1630/requirements.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const julia_packages = [
"IJulia", # DO NOT REMOVE
# add class specific classes here:

]
9 changes: 9 additions & 0 deletions requirements/classes/neur1630/requirements.pip.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# add class-specific classes here:
scanpy
harmonypy
rpy2
nwbwidgets
pynapple
pybiomart
pyranges
gseapy
67 changes: 67 additions & 0 deletions requirements/classes/neur1630/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# add class-specific packages here:
ipywidgets
zarr
requests
aiohttp
louvain
anndata
umap-learn
loompy
scrublet
bioconductor-scran
anndata2ri
fastcluster
tqdm
pynwb
dandi

# these are the scipy base packages ( YOU PROBABLY DON'T WANT TO REMOVE THESE )
dask
pandas
numexpr
matplotlib
scipy
seaborn
scikit-learn
scikit-image
sympy
cython
patsy
statsmodels
cloudpickle
dill
numba
bokeh
sqlalchemy
hdf5
vincent
beautifulsoup4
protobuf
xlrd
bottleneck
pytables

# these are the base r packages in the r-notebook image ( YOU PROBABLY WANT THESE IF YOUR TARGET IN DOCKER IS r_lang OR r_julia )
r-base=4.2.*
r-caret=6.*
r-crayon=1.*
r-devtools=2.*
r-forecast=8.*
r-hexbin=1.*
r-htmltools=0.*
r-htmlwidgets=1.*
r-irkernel=1.*
r-nycflights13=1.*
r-randomforest=4.*
r-rcurl=1.98*
r-rmarkdown=2.*
r-rodbc=1.*
r-rsqlite=2.*
r-shiny=1.*
r-tidyverse
unixodbc=2.*
r-tidymodels=1.*

# required for environment and plugins ( DO NOT REMOVE THESE!!! )
ipython
ipykernel

0 comments on commit 38b202c

Please sign in to comment.