Updating the different GH actions #53
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |