diff --git a/.github/workflows/test-j-recurring-tag.yml b/.github/workflows/test-j-recurring-tag.yml new file mode 100644 index 00000000..59b95da2 --- /dev/null +++ b/.github/workflows/test-j-recurring-tag.yml @@ -0,0 +1,52 @@ +name: tag-image-test-j +on: [workflow_dispatch] + +env: + CLASS: test-j + TARGET: r_julia + SQLITE: false + PYTHON_VERSION: "3.9.17" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Set Up GCloud + uses: google-github-actions/setup-gcloud@v0.6.2 + 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/test-j/julia_env gs://jupyterhub-environment-files/recurring-2024/test-j/past/${GITHUB_SHA}/julia + gsutil cp -r requirements/classes/test-j/julia_env gs://jupyterhub-environment-files/recurring-2024/test-j/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/test-j:${GITHUB_REF##*/} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-j:${GITHUB_SHA} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-j:latest + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-j:recurring-2024 + docker push gcr.io/jupyterhub-docker-images/test-j:latest + docker push gcr.io/jupyterhub-docker-images/test-j:recurring-2024 + docker push gcr.io/jupyterhub-docker-images/test-j:${GITHUB_REF##*/} + docker push gcr.io/jupyterhub-docker-images/test-j:${GITHUB_SHA} + + - name: Upload Conda Env Files to Google Storage Bucket + run: | + gsutil cp -r requirements/out gs://jupyterhub-environment-files/recurring-2024/test-j/past/${GITHUB_SHA}/conda + gsutil cp -r requirements/out gs://jupyterhub-environment-files/recurring-2024/test-j/latest/conda \ No newline at end of file diff --git a/.github/workflows/test-j.yml b/.github/workflows/test-j.yml new file mode 100644 index 00000000..1bfcb37d --- /dev/null +++ b/.github/workflows/test-j.yml @@ -0,0 +1,47 @@ +name: build-image-test-j +on: + push: + paths: + - 'requirements/classes/test-j/**' + - 'Dockerfile' + - 'docker-compose.yml' + - 'scripts/**' + - '.github/workflows/test-j.yml' + workflow_dispatch: + +env: + CLASS: test-j + TARGET: r_julia + SQLITE: false + PYTHON_VERSION: "3.9.17" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Set Up GCloud + uses: google-github-actions/setup-gcloud@v0.6.2 + 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/action-docker-layer-caching@v0.0.11 + # # 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/test-j:${GITHUB_REF##*/} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-j:latest + docker push gcr.io/jupyterhub-docker-images/test-j:latest + docker push gcr.io/jupyterhub-docker-images/test-j:${GITHUB_REF##*/} diff --git a/.github/workflows/test-r-recurring-tag.yml b/.github/workflows/test-r-recurring-tag.yml new file mode 100644 index 00000000..ee0fd64a --- /dev/null +++ b/.github/workflows/test-r-recurring-tag.yml @@ -0,0 +1,52 @@ +name: tag-image-test-r +on: [workflow_dispatch] + +env: + CLASS: test-r + TARGET: r_julia + SQLITE: false + PYTHON_VERSION: "3.9.17" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Set Up GCloud + uses: google-github-actions/setup-gcloud@v0.6.2 + 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/test-r/julia_env gs://jupyterhub-environment-files/recurring-2024/test-r/past/${GITHUB_SHA}/julia + gsutil cp -r requirements/classes/test-r/julia_env gs://jupyterhub-environment-files/recurring-2024/test-r/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/test-r:${GITHUB_REF##*/} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-r:${GITHUB_SHA} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-r:latest + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-r:recurring-2024 + docker push gcr.io/jupyterhub-docker-images/test-r:latest + docker push gcr.io/jupyterhub-docker-images/test-r:recurring-2024 + docker push gcr.io/jupyterhub-docker-images/test-r:${GITHUB_REF##*/} + docker push gcr.io/jupyterhub-docker-images/test-r:${GITHUB_SHA} + + - name: Upload Conda Env Files to Google Storage Bucket + run: | + gsutil cp -r requirements/out gs://jupyterhub-environment-files/recurring-2024/test-r/past/${GITHUB_SHA}/conda + gsutil cp -r requirements/out gs://jupyterhub-environment-files/recurring-2024/test-r/latest/conda \ No newline at end of file diff --git a/.github/workflows/test-r.yml b/.github/workflows/test-r.yml new file mode 100644 index 00000000..f8deb41e --- /dev/null +++ b/.github/workflows/test-r.yml @@ -0,0 +1,47 @@ +name: build-image-test-r +on: + push: + paths: + - 'requirements/classes/test-r/**' + - 'Dockerfile' + - 'docker-compose.yml' + - 'scripts/**' + - '.github/workflows/test-r.yml' + workflow_dispatch: + +env: + CLASS: test-r + TARGET: r_julia + SQLITE: false + PYTHON_VERSION: "3.9.17" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Set Up GCloud + uses: google-github-actions/setup-gcloud@v0.6.2 + 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/action-docker-layer-caching@v0.0.11 + # # 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/test-r:${GITHUB_REF##*/} + docker tag jupyterhub-docker-images_jh_image:latest gcr.io/jupyterhub-docker-images/test-r:latest + docker push gcr.io/jupyterhub-docker-images/test-r:latest + docker push gcr.io/jupyterhub-docker-images/test-r:${GITHUB_REF##*/} diff --git a/requirements/classes/test-j/condarc b/requirements/classes/test-j/condarc new file mode 100644 index 00000000..d2a82925 --- /dev/null +++ b/requirements/classes/test-j/condarc @@ -0,0 +1,15 @@ +# 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: + - conda-forge + +# 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 \ No newline at end of file diff --git a/requirements/classes/test-j/packages.R b/requirements/classes/test-j/packages.R new file mode 100644 index 00000000..e1dced38 --- /dev/null +++ b/requirements/classes/test-j/packages.R @@ -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")) diff --git a/requirements/classes/test-j/requirements.jl b/requirements/classes/test-j/requirements.jl new file mode 100644 index 00000000..87635a43 --- /dev/null +++ b/requirements/classes/test-j/requirements.jl @@ -0,0 +1,5 @@ +const julia_packages = [ + "IJulia", # DO NOT REMOVE + # add class specific classes here: + + ] \ No newline at end of file diff --git a/requirements/classes/test-j/requirements.pip.txt b/requirements/classes/test-j/requirements.pip.txt new file mode 100644 index 00000000..43719b70 --- /dev/null +++ b/requirements/classes/test-j/requirements.pip.txt @@ -0,0 +1,2 @@ +# add class-specific classes here: + diff --git a/requirements/classes/test-j/requirements.txt b/requirements/classes/test-j/requirements.txt new file mode 100644 index 00000000..e0689d67 --- /dev/null +++ b/requirements/classes/test-j/requirements.txt @@ -0,0 +1,52 @@ +# add class-specific packages here: + +# 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 diff --git a/requirements/classes/test-r/condarc b/requirements/classes/test-r/condarc new file mode 100644 index 00000000..d2a82925 --- /dev/null +++ b/requirements/classes/test-r/condarc @@ -0,0 +1,15 @@ +# 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: + - conda-forge + +# 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 \ No newline at end of file diff --git a/requirements/classes/test-r/packages.R b/requirements/classes/test-r/packages.R new file mode 100644 index 00000000..e1dced38 --- /dev/null +++ b/requirements/classes/test-r/packages.R @@ -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")) diff --git a/requirements/classes/test-r/requirements.jl b/requirements/classes/test-r/requirements.jl new file mode 100644 index 00000000..87635a43 --- /dev/null +++ b/requirements/classes/test-r/requirements.jl @@ -0,0 +1,5 @@ +const julia_packages = [ + "IJulia", # DO NOT REMOVE + # add class specific classes here: + + ] \ No newline at end of file diff --git a/requirements/classes/test-r/requirements.pip.txt b/requirements/classes/test-r/requirements.pip.txt new file mode 100644 index 00000000..43719b70 --- /dev/null +++ b/requirements/classes/test-r/requirements.pip.txt @@ -0,0 +1,2 @@ +# add class-specific classes here: + diff --git a/requirements/classes/test-r/requirements.txt b/requirements/classes/test-r/requirements.txt new file mode 100644 index 00000000..e0689d67 --- /dev/null +++ b/requirements/classes/test-r/requirements.txt @@ -0,0 +1,52 @@ +# add class-specific packages here: + +# 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