Next: , Previous: , Up: BASS v0.1.0-211-g567060e   [Index]


CI

CI system consists of master and slave, joined together by shared filesystem. Masters create tasks for slaves. Slaves take those tasks and create jobs with computation results.

     ┌───┐          ┌──────────┐          ┌───┐              ┌──────────┐          ┌───────────┐              
     │git│          │task-maker│          │NFS│              │task-taker│          │job-starter│              
     └─┬─┘          └────┬─────┘          └─┬─┘              └────┬─────┘          └─────┬─────┘              
       │           revs/$COMMIT             │                     │                      │                    
       │───────────────────────────────────>│                     │                      │                    
       │                 │                  │                     │                      │                    
       │                 │   revs/$COMMIT   │                     │                      │                    
       │                 │ <────────────────│                     │                      │                    
       │                 │                  │                     │                      │                    
       │                 │  mkdir $CTR/+1   │                     │                      │                    
       │                 │ ────────────────>│                     │                      │                    
       │                 │                  │                     │                      │                    
       │                 │       rc=0       │                     │                      │                    
       │                 │ <────────────────│                     │                      │                    
       │                 │                  │                     │                      │                    
       │                 │ $TASKS/$CTR:task │                     │                      │                    
       │                 │ ────────────────>│                     │                      │                    
       │                 │                  │                     │                      │                    
       │                 │                  │  $TASKS/$CTR:task   │                      │                    
       │                 │                  │─────────────────────>                      │                    
       │                 │                  │                     │                      │                    
       │                 │                  │mkdir $JOBS/$CTR:task│                      │                    
       │                 │                  │<─────────────────────                      │                    
       │                 │                  │                     │                      │                    
       │                 │                  │        rc=0         │                      │                    
       │                 │                  │─────────────────────>                      │                    
       │                 │                  │                     │                      │                    
       │                 │                  │                     │   $JOBS/$CTR:task    │                    
       │                 │                  │                     │ ────────────────────>│                    
       │                 │                  │                     │                      │                    
       │                 │                  │        touch $JOBS/$CTR:task/alive         │                    
       │                 │                  │<───────────────────────────────────────────│                    
       │                 │                  │                     │                      │                    
       │                 │                  │                     │                      │────┐               
       │                 │                  │                     │                      │    │ "steps-runner"
       │                 │                  │                     │                      │<───┘               
       │                 │                  │                     │                      │                    
       │                 │                  │      touch $JOBS/$CTR:task/finished        │                    
       │                 │                  │<───────────────────────────────────────────│                    
       │                 │                  │                     │                      │                    
       │                 │                  │                     │                      │                    
Task:  
Job:  
Daemontools:  
Master:  
Slave: