CI architecture changes for multi-project pipelines
We want to introduce multi-project pipelines soon, but this requires some minor architecture changes of underlying domain model, to make it easier to implement a new feature.
Changing few things would simplify the implementation:
- extract common CI job features from
CommitStatus
toCi::Job
abstract class - rename
GenericCommitStatus
toCi::ExternalJob < Ci::Job
- extract general abstract implementation from
Ci::Build
toCi::Job
- inherit from newly created abstract class in
Ci::Build < Ci::Job
This will make it easier to add new job types like Ci::PipelineBridge
or Ci::PipelineDependency
that would make it easier to implement multi-project pipeline.
Alternative naming convention:
-
Ci::Job
module -
Ci::Job::Base
abstract class -
Ci::Job::External
external job -
Ci::Job::Build
build -
Ci::Job::Bridge
orCi::Job::Dependency
for pipeline trigger/depedency (or both for different dependency direction)
/cc @ayufan