Skip to content

Updating the different GH actions #53

Updating the different GH actions

Updating the different GH actions #53

Workflow file for this run

name: ashleys-qc-pipeline workflow checks
on:
push:
branches:
- "**"
jobs:
Formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Formatting using Super-Linter
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: master
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_SNAKEMAKE_SNAKEFMT: true
Linting:
runs-on: ubuntu-latest
steps:
- name: Checkout repository with submodules
uses: actions/checkout@v4
with:
submodules: 'recursive' # Ensures all submodules are checked out
lfs: true # Ensures LFS objects for the main repo are pulled
- name: Pull LFS objects in submodules
run: |
git submodule foreach --recursive 'git lfs pull'
- name: List contents of .tests
run: |
tree -h .tests
- name: List contents of workflow/data
run: |
tree -h workflow/data
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: |
echo $CONDA/bin >> $GITHUB_PATH
- name: Install dependencies
run: |
conda install -c conda-forge mamba
- name: Setup snakemake
run: |
mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: Run Snakemake Lint
run: |
snakemake --lint
Testing-basic:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: List contents of .tests
run: |
tree -h .tests
- name: List contents of workflow/data
run: |
tree -h workflow/data
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --configfile .tests/config/simple_config_ashleys.yaml \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-basic-with-slurm:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
services:
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: root
ports:
- "8888:3306"
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v3
- uses: koesterlab/setup-slurm-action@v1
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: List contents of .tests
run: |
tree -h .tests
- name: List contents of workflow/data
run: |
tree -h workflow/data
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake with SLURM support
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http snakemake-executor-plugin-slurm
- name: Run workflow on SLURM
run: |
snakemake -j 1 -c 1 --executor slurm --workflow-profile .tests/config/slurm_config/ --verbose --debug \
--software-deployment-method conda --conda-frontend mamba --configfile .tests/config/simple_config_ashleys.yaml -p --snakefile workflow/Snakefile
Testing-with-MultiQC:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --configfile .tests/config/simple_config_ashleys.yaml --config MultiQC=True \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-with-ms-norm:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --configfile .tests/config/simple_config_ashleys.yaml --config multistep_normalisation=True \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-with-hg38:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --config reference=hg38 use_light_data=True chromosomes=[chr17] \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-with-hg19:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
- Testing-basic-with-slurm
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --config reference=hg19 use_light_data=True chromosomes=[chr17] \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-with-T2T:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
- Testing-basic-with-slurm
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --config reference=T2T use_light_data=True chromosomes=[chr17] \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
Testing-with-mm10:
runs-on: ubuntu-latest
needs:
- Formatting
- Linting
- Testing-basic
- Testing-basic-with-slurm
steps:
- name: Checkout repository with submodules and LFS
uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Pull LFS objects in submodules
run: git submodule foreach --recursive 'git lfs pull'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add Conda to system path
run: echo "$CONDA/bin" >> $GITHUB_PATH
- name: Install dependencies
run: conda install -c conda-forge mamba
- name: Setup Snakemake
run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http
- name: List options of workflow
run: |
snakemake --cores 1 --config list_commands=True --verbose --debug
- name: Run workflow
run: |
snakemake --cores 1 --software-deployment-method conda --config reference=T2T use_light_data=True chromosomes=[chr17] \
--conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile
# Testing_publishdir:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Testing data
# uses: snakemake/snakemake-github-action@v1.24.0
# with:
# directory: .
# snakefile: ./workflow/Snakefile
# stagein: "conda config --set channel_priority flexible"
# args: "--cores 1 --use-conda --configfile .tests/config/simple_config_ashleys.yaml --config publishdir=.tests/data_chr17_publishdir --conda-frontend mamba -p --verbose --debug"
# - name: Testing report
# uses: snakemake/snakemake-github-action@v1.24.0
# with:
# directory: .
# snakefile: ./workflow/Snakefile
# args: "--cores 1 --use-conda --configfile .tests/config/simple_config_ashleys.yaml --config publishdir=.tests/data_chr17_publishdir --conda-frontend mamba --report report.zip"