diff --git a/.github/workflows/main_test.yaml b/.github/workflows/main_test.yaml index 017464a..599e12d 100644 --- a/.github/workflows/main_test.yaml +++ b/.github/workflows/main_test.yaml @@ -6,6 +6,22 @@ on: - "**" 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: @@ -46,109 +62,87 @@ jobs: run: | snakemake --lint + Testing-basic: + runs-on: ubuntu-latest + depends-on: + - Formatting + - Linting + steps: + - name: Checkout repository with submodules and LFS + uses: actions/checkout@v4 + with: + submodules: recursive + lfs: true - # Testing_ashleys_with_custom_python: - # # runs-on: self-hosted - # runs-on: ubuntu-latest - # steps: - # - name: Checkout repository with submodules and lfs - # uses: actions/checkout@v4 - # with: - # submodules: recursive - # lfs: true - # - name: Setup Python - # uses: actions/setup-python@v2 - # - 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 workflow - # run: | - # snakemake --cores 1 --software-deployment-method conda --configfile .tests/config/simple_config.yaml --conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile - - # Setting_slurm_cluster: - # runs-on: ubuntu-latest - # # For the action to work, you have to supply a mysql - # # service as defined below. - # 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 + - name: Pull LFS objects in submodules + run: git submodule foreach --recursive 'git lfs pull' - # - uses: koesterlab/setup-slurm-action@v1 + - name: Setup Python + uses: actions/setup-python@v2 - # - name: Checkout repository with submodules and lfs - # uses: actions/checkout@v4 - # with: - # submodules: recursive - # lfs: true - # - name: Setup Python - # uses: actions/setup-python@v2 - # - 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 snakemake-executor-plugin-slurm - # - name: Run workflow - # run: | - # snakemake -j 1 -c 4 --executor slurm --workflow-profile .tests/config/slurm_config/ --software-deployment-method conda --conda-frontend mamba --configfile .tests/config/simple_config.yaml -p --snakefile workflow/Snakefile - - # WORK - # Formatting: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 + - name: Add Conda to system path + run: echo "$CONDA/bin" >> $GITHUB_PATH - # - name: Formatting - # uses: github/super-linter@v4 - # env: - # VALIDATE_ALL_CODEBASE: false - # DEFAULT_BRANCH: master - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # VALIDATE_SNAKEMAKE_SNAKEFMT: true + - name: Install dependencies + run: conda install -c conda-forge mamba - # Linting: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: Linting - # uses: snakemake/snakemake-github-action@v1.24.0 - # with: - # directory: . - # snakefile: ./workflow/Snakefile - # args: "--lint --config ashleys_pipeline=True" - # Testing_ashleys: - # 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.yaml --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.yaml --conda-frontend mamba --report report.zip" + - name: Setup Snakemake + run: mamba install -c conda-forge -c bioconda snakemake snakemake-storage-plugin-http + + - name: Run 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.yaml \ + --conda-frontend mamba -p --verbose --debug --snakefile workflow/Snakefile + +Testing-basic-with-slurm: + runs-on: ubuntu-latest + depends-on: + - 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: Setup Python + uses: actions/setup-python@v2 + + - 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-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.yaml -p --snakefile workflow/Snakefile # Testing_ashleys_fastqc_enabled: # runs-on: ubuntu-latest @@ -253,23 +247,6 @@ jobs: # directory: . # snakefile: ./workflow/Snakefile # args: "--cores 1 --use-conda --config reference=mm10 use_light_data=True chromosomes=[chr17] --conda-frontend mamba --report report.zip" - # Testing_jub_nb: - # 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.yaml --config hand_selection=True --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.yaml --config hand_selection=True --conda-frontend mamba --report report.zip" # Testing_publishdir: # runs-on: ubuntu-latest # steps: @@ -287,13 +264,3 @@ jobs: # directory: . # snakefile: ./workflow/Snakefile # args: "--cores 1 --use-conda --configfile .tests/config/simple_config.yaml --config publishdir=.tests/data_chr17_publishdir --conda-frontend mamba --report report.zip" - # Testing_list_commands: - # 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 - # args: "--cores 1 --config list_commands=True --verbose --debug"