Module: GCI

Defined in:
lib/gci.rb,
lib/gci/cli.rb,
lib/gci/job.rb,
lib/gci/version.rb,
lib/gci/pipeline.rb

Defined Under Namespace

Classes: CLI, Error, Job, Pipeline

Constant Summary collapse

VERSION =
'0.1.2'

Class Method Summary collapse

Class Method Details

.pipeline(&block) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/gci.rb', line 13

def self.pipeline(&block)
  if @pipeline
    yield(@pipeline) if block_given?
  else
    @pipeline = Pipeline.new(&block)
  end

  @pipeline
end

.root_pipeline {|@root_pipeline| ... } ⇒ Object

Yields:



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
# File 'lib/gci.rb', line 23

def self.root_pipeline
  @root_pipeline ||= Pipeline.new do |pipeline|
    pipeline.gitlab_ci_file = '.gitlab-ci.yml'
    pipeline.image = 'ruby:alpine'
    pipeline.stages = %i[build run]

    pipeline.jobs.build(name: 'generate-config') do |job|
      job.stage = :build
      job.before_script = [
        'gem install gci'
      ]

      job.script = [
        'gci --config .gitlab-ci.rb generate'
      ]

      job.artifacts = {
        paths: ['child.gitlab-ci.yml']
      }
    end

    pipeline.jobs.build(name: 'execute-config') do |job|
      job.stage = :run
      job.trigger = {
        include: [
          artifact: 'child.gitlab-ci.yml',
          job: 'generate-config'
        ],
        strategy: 'depend'
      }
    end
  end

  yield(@root_pipeline) if block_given?
  @root_pipeline
end