Skip to content

Commit

Permalink
Merge pull request #116 from rasools/OMICSINT_H24
Browse files Browse the repository at this point in the history
Add workflow for making docker images
  • Loading branch information
rasools authored Sep 13, 2024
2 parents eddecb6 + 83f5cfa commit c7b96c6
Show file tree
Hide file tree
Showing 7 changed files with 301 additions and 171 deletions.
115 changes: 115 additions & 0 deletions .github/workflows/Build and Push Docker Images for Labs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Build and Push Docker Images for Labs

on:
push:
paths:
- 'session_ml/DeepLearningDataIntegration/**'
- 'session_ml/FeatureSelectionIntegrOMICs/**'
- 'session_ml/SingleCell/**'
- 'session_gems/**'
branches:
- OMICSINT_H24

jobs:
build:
runs-on: ubuntu-latest

if: github.repository == 'NBISweden/workshop_omics_integration'

steps:
# Checkout the repository
- name: Checkout repository
uses: actions/checkout@v3

# Set up Docker Buildx for multi-platform builds
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

# Log in to Docker Hub
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# Log in to GitHub Container Registry (GHCR)
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Determine which directories have changes
- name: Check for Changes
id: changes
run: |
echo "## Detecting changes in the repository..."
if git diff --name-only HEAD^ HEAD | grep -q 'session_ml/DeepLearningDataIntegration'; then
echo "deep_learning=true" >> $GITHUB_ENV
fi
if git diff --name-only HEAD^ HEAD | grep -q 'session_ml/FeatureSelectionIntegrOMICs'; then
echo "feature_selection=true" >> $GITHUB_ENV
fi
if git diff --name-only HEAD^ HEAD | grep -q 'session_ml/SingleCell'; then
echo "single_cell=true" >> $GITHUB_ENV
fi
if git diff --name-only HEAD^ HEAD | grep -q 'session_gems'; then
echo "gems=true" >> $GITHUB_ENV
fi
# Conditionally build and push images for Deep Learning Lab
- name: Build and Push Docker Image for Deep Learning Lab
if: env.deep_learning == 'true'
uses: docker/build-push-action@v4
with:
context: ./session_ml/DeepLearningDataIntegration
file: session_ml/DeepLearningDataIntegration/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: |
docker.io/rasoolsnbis/omicsint_h24:session_ml_deep_learning_integration_amd
ghcr.io/nbisweden/omicsint_h24:session_ml_deep_learning_integration_amd
# Conditionally build and push images for Feature Selection Lab
- name: Build and Push Docker Image for Feature Selection Lab
if: env.feature_selection == 'true'
uses: docker/build-push-action@v4
with:
context: ./session_ml/FeatureSelectionIntegrOMICs
file: session_ml/FeatureSelectionIntegrOMICs/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: |
docker.io/rasoolsnbis/omicsint_h24:session_ml_feature_selection_amd
ghcr.io/nbisweden/omicsint_h24:session_ml_feature_selection_amd
# Conditionally build and push images for Single Cell Lab
- name: Build and Push Docker Image for Single Cell Lab
if: env.single_cell == 'true'
uses: docker/build-push-action@v4
with:
context: ./session_ml/SingleCell
file: session_ml/SingleCell/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: |
docker.io/rasoolsnbis/omicsint_h24:session_ml_single_cell_amd
ghcr.io/nbisweden/omicsint_h24:session_ml_single_cell_amd
# Conditionally build and push images for Gems Lab
- name: Build and Push Docker Image for Gems Lab
if: env.gems == 'true'
uses: docker/build-push-action@v4
with:
context: ./session_gems
file: session_gems/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: |
docker.io/rasoolsnbis/omicsint_h24:session_gems_amd
ghcr.io/nbisweden/omicsint_h24:session_gems_amd
107 changes: 44 additions & 63 deletions .github/workflows/docker-build-lab-Single_cell-amd.yml
Original file line number Diff line number Diff line change
@@ -1,63 +1,44 @@
name: Build and Push Docker Image for lab single cell

on:
push:
paths:
- 'session_ml/SingleCell/**'
branches:
- OMICSINT_H24

jobs:
build:
runs-on: ubuntu-latest

if: github.repository == 'nbisweden/workshop_omics_integration'

steps:
# Checkout the repository
- name: Checkout repository
uses: actions/checkout@v3

# Set up Docker Buildx for multi-platform builds
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

# Log in to Docker Hub using the secrets
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# Log in to GitHub Container Registry (GHCR)
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Build and push the Docker image for both amd64 to Docker Hub
- name: Build and Push Docker Image to Docker Hub
uses: docker/build-push-action@v4
with:
context: ./session_ml/SingleCell
file: session_ml/SingleCell/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: docker.io/rasoolsnbis/omicsint_h24:session_ml_single_cell_amd

# Build and push the Docker image to GitHub Container Registry (GHCR)
- name: Build and Push Docker Image to GHCR
uses: docker/build-push-action@v4
with:
context: ./session_ml/SingleCell
file: session_ml/SingleCell/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: ghcr.io/nbisweden/omicsint_h24:session_ml_single_cell_amd

- name: Inspect Docker Image
run: docker buildx imagetools inspect docker.io/rasoolsnbis/omicsint_h24:session_ml_single_cell_amd
# name: Build and Push Docker Image for lab single cell

# on:
# push:
# paths:
# - 'session_ml/SingleCell/**'
# branches:
# - OMICSINT_H24

# jobs:
# build:
# runs-on: ubuntu-latest

# if: github.repository == 'nbisweden/workshop_omics_integration'

# steps:
# # Checkout the repository
# - name: Checkout repository
# uses: actions/checkout@v3

# # Set up Docker Buildx for multi-platform builds
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2

# # Log in to Docker Hub using the secrets
# - name: Log in to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# # Build and push the Docker image for both amd64 to Docker Hub
# - name: Build and Push Docker Image to Docker Hub
# uses: docker/build-push-action@v4
# with:
# context: ./session_ml/SingleCell
# file: session_ml/SingleCell/Dockerfile
# platforms: linux/amd64
# push: true
# no-cache: true
# tags: docker.io/rasoolsnbis/omicsint_h24:session_ml_single_cell_amd

# - name: Inspect Docker Image
# run: docker buildx imagetools inspect docker.io/rasoolsnbis/omicsint_h24:session_ml_single_cell_amd
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
name: Build and Push Docker Image for lab deep learning integration

on:
push:
paths:
- 'session_ml/DeepLearningDataIntegration/**'
branches:
- OMICSINT_H24

jobs:
build:
runs-on: ubuntu-latest

if: github.repository == 'NBISweden/workshop_omics_integration'

steps:
# Checkout the repository
- name: Checkout repository
uses: actions/checkout@v3

# Set up Docker Buildx for multi-platform builds
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

# Log in to Docker Hub using the secrets
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# Build and push the Docker image for both amd64 and arm64
- name: Build and Push Docker Image for Session Gems
uses: docker/build-push-action@v4
with:
context: ./session_ml/DeepLearningDataIntegration
file: session_ml/DeepLearningDataIntegration/Dockerfile
platforms: linux/amd64
push: true
no-cache: true
tags: docker.io/rasoolsnbis/omicsint_h24:session_ml_deep_learning_integration_amd

- name: Inspect Docker Image
run: docker buildx imagetools inspect docker.io/rasoolsnbis/omicsint_h24:session_ml_deep_learning_integration_amd
# name: Build and Push Docker Image for lab deep learning integration

# on:
# push:
# paths:
# - 'session_ml/DeepLearningDataIntegration/**'
# branches:
# - OMICSINT_H24

# jobs:
# build:
# runs-on: ubuntu-latest

# if: github.repository == 'NBISweden/workshop_omics_integration'

# steps:
# # Checkout the repository
# - name: Checkout repository
# uses: actions/checkout@v3

# # Set up Docker Buildx for multi-platform builds
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2

# # Log in to Docker Hub using the secrets
# - name: Log in to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# # Build and push the Docker image for both amd64 and arm64
# - name: Build and Push Docker Image for Session Gems
# uses: docker/build-push-action@v4
# with:
# context: ./session_ml/DeepLearningDataIntegration
# file: session_ml/DeepLearningDataIntegration/Dockerfile
# platforms: linux/amd64
# push: true
# no-cache: true
# tags: docker.io/rasoolsnbis/omicsint_h24:session_ml_deep_learning_integration_amd

# - name: Inspect Docker Image
# run: docker buildx imagetools inspect docker.io/rasoolsnbis/omicsint_h24:session_ml_deep_learning_integration_amd
44 changes: 44 additions & 0 deletions .github/workflows/docker-build-lab-feature-selection-amd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# name: Build and Push Docker Image for lab feature selection

# on:
# push:
# paths:
# - 'session_ml/FeatureSelectionIntegrOMICs/**'
# branches:
# - OMICSINT_H24

# jobs:
# build:
# runs-on: ubuntu-latest

# if: github.repository == 'nbisweden/workshop_omics_integration'

# steps:
# # Checkout the repository
# - name: Checkout repository
# uses: actions/checkout@v3

# # Set up Docker Buildx for multi-platform builds
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2

# # Log in to Docker Hub using the secrets
# - name: Log in to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

# # Build and push the Docker image for both amd64 to Docker Hub
# - name: Build and Push Docker Image to Docker Hub
# uses: docker/build-push-action@v4
# with:
# context: ./session_ml/FeatureSelectionIntegrOMICs
# file: session_ml/FeatureSelectionIntegrOMICs/Dockerfile
# platforms: linux/amd64
# push: true
# no-cache: true
# tags: docker.io/rasoolsnbis/omicsint_h24:session_ml_feature_selection_amd

# - name: Inspect Docker Image
# run: docker buildx imagetools inspect docker.io/rasoolsnbis/omicsint_h24:session_ml_feature_selection_amd
Loading

0 comments on commit c7b96c6

Please sign in to comment.