Project

General

Profile

Git strategy for pipeline development » History » Version 1

Tom Clegg, 02/16/2016 07:00 PM

1 1 Tom Clegg
h1. Git strategy for pipeline development
2
3
The following scenario is common:
4
* You have a project that involves one or two pipelines
5
* Each pipeline have many components
6
* These pipelines and components make use of a common code base
7
8
Example:
9
10
|crunch scripts in repo|pipeline A|pipeline B|
11
|<pre>crunch_scripts/align
12
crunch_scripts/call
13
crunch_scripts/compare</pre>|<pre>align(1)    align(2)
14
   |           |
15
call(1)     call(2)
16
   |____   ____|
17
        | |
18
      compare</pre>|<pre>align(1)    align(2)    align(3)
19
   |           |           |
20
call(1)     call(2)     call(3)
21
   |_________  |  _________|
22
             | | |
23
            compare</pre>|
24
25
While developing the code you can expect to have moments like these:
26
* Fix a bug in @compare@ that was making it fail when given 3 inputs.
27
* Update the code, commit, push, and re-run. (Note: results from previous runs _that succeeded_ are still valid.)
28
* Find a bug in @compare@ that was making it produce incorrect output when given 3 inputs.
29
* Update the code, commit, push, and re-run. Update pipeline template B to prevent the broken jobs (the ones that are marked "success" but produced incorrect outputs) from being re-used in future pipeline runs. (Note: results from previous jobs from pipeline A are still OK.)
30
31
h2. A strategy