-
Notifications
You must be signed in to change notification settings - Fork 4
136 lines (128 loc) · 4.69 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Continuous Integration
on:
push:
branches:
- development
- master # master test only useful for badges
pull_request:
branches:
- development
- master # master test only useful for badges
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./cicd/Dockerfile_CI
tags: mosca:latest
outputs: type=docker,dest=/tmp/mosca.tar
- name: Create named volume
run: docker volume create named_volume
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: mosca
path: /tmp/mosca.tar
preprocess:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: mosca
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/mosca.tar
docker image ls -a
- name: run preprocess
run: |
docker run mosca /bin/bash -c "rm -r MOSCARDO/output_rules/Preprocess;
snakemake --cores all -R --until preprocess -s MOSCA/workflow/Snakefile --configfile MOSCARDO/configs/rules_config.json --use-conda"
assembly:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: mosca
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/mosca.tar
docker image ls -a
- name: run assembly
run: |
docker run mosca /bin/bash -c "rm -r MOSCARDO/output_rules/Assembly; gunzip -r MOSCARDO/output_rules;
touch MOSCARDO/output_rules/Preprocess/Trimmomatic/quality_trimmed_mg_forward_paired.fq;
touch MOSCARDO/output_rules/Preprocess/Trimmomatic/quality_trimmed_mg_reverse_paired.fq;
snakemake --cores all -R --until assembly -s MOSCA/workflow/Snakefile --configfile MOSCARDO/configs/rules_config.json --use-conda"
binning:
runs-on: ubuntu-latest
needs: build
if: false # Blocked for now, since GHA don't provide enough memory to run this step ( 7Gb < 32Gb )
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: mosca
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/mosca.tar
docker image ls -a
- name: run binning
run: |
docker run mosca /bin/bash -c "gunzip -r MOSCARDO/output_rules;
touch MOSCARDO/output_rules/Preprocess/Trimmomatic/quality_trimmed_mg_forward_paired.fq;
touch MOSCARDO/output_rules/Preprocess/Trimmomatic/quality_trimmed_mg_reverse_paired.fq;
touch MOSCARDO/output_rules/Preprocess/sample_forward.fastq MOSCARDO/output_rules/Preprocess/sample_reverse.fastq;
touch MOSCARDO/output_rules/Assembly/sample/contigs.fasta MOSCARDO/output_rules/Assembly/sample/scaffolds.fasta;
snakemake --cores all -R --until binning -s MOSCA/workflow/Snakefile --configfile MOSCARDO/configs/rules_config.json --use-conda --ignore-incomplete"
mgmt-workflow:
runs-on: ubuntu-latest
needs: build
if: false # Blocked for now, since GHA don't provide enough disk space to run this step
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: mosca
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/mosca.tar
docker image ls -a
- name: MGMT workflow
run: docker run mosca /bin/bash -c "rm -r MOSCARDO/output_rules; mosca -c MOSCARDO/configs/mgmt_config.json"
mgmp-workflow:
runs-on: ubuntu-latest
needs: build
if: false # Blocked for now, since GHA don't provide enough disk space to run this step
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: mosca
path: /tmp
- name: Load Docker image
run: |
docker load --input /tmp/mosca.tar
docker image ls -a
- name: Create named volume
run: docker volume create named_volume
- name: MGMP workflow
run: >
docker run -v named_volume:/data -v /var/run/docker.sock:/var/run/docker.sock mosca /bin/bash
-c "rm -r MOSCARDO/output_rules; gunzip -v MOSCARDO/input/*/mp*.RAW.gz;
mosca -c MOSCARDO/configs/mgmp_config.json"