Sha256: 795d5b70c54011aa4d2af78d2a06a16a3a7754dee9613b7829a36736b4f861f1

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

class BasicPipeline < PipelineDefinition
  stage :first

  def first
    scm = {}
    if event.data[:commit]
      scm[:commit] = event.data[:commit]
      scm[:branch] = event.data[:branch]
      scm[:pull_request] = event.data[:pull_request]
    else
      latest = project.owner.client.latest_commit(project.repo_name)
      scm[:commit] = latest[:sha]
      scm[:branch] = latest[:branch]
    end

    create_job(
        project: project,
        scm: scm,
        spec: basic_job_from_file,
    )
  end

  def basic_job_from_file
    ci_file = project.owner.client.file(project.repo_name, 'ci.yml')
    if ci_file
      spec = {}
      build = HashWithIndifferentAccess.new(YAML.load(ci_file))

      # services are copied directly
      spec[:services] = build[:services]

      # turns each key into a section
      spec[:sections] = []

      spec[:sections] << {
          name: 'setup',
          fail_on_err: true,
          commands: build[:setup],
          on_success: build[:on_success],
          on_failure: build[:on_failure],
      }

      spec[:sections] << {
          name: 'test',
          fail_on_err: true,
          commands: build[:test],
          on_success: build[:on_success],
          on_failure: build[:on_failure],
      }

      spec[:sections] << {
          name: 'after',
          fail_on_err: true,
          commands: build[:after],
      }

      spec
    else
      {
          sections: [
              {
                  name: 'test',
                  fail_on_err: true,
                  commands: ['exit 1'],
              }
          ]
      }
    end
  end



end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jobs-api-0.2.1 app/models/basic_pipeline.rb
jobs-api-0.2.0 app/models/basic_pipeline.rb
jobs-api-0.1.2 app/models/basic_pipeline.rb
jobs-api-0.1.1 app/models/basic_pipeline.rb
jobs-api-0.1.0 app/models/basic_pipeline.rb