class LabClient::Generator::PipelineTrigger

Child and other Trigger Examples docs.gitlab.com/ee/ci/yaml/#trigger

Public Instance Methods

child_pipeline_yaml() click to toggle source
# File lib/labclient/generator/templates/pipeline_trigger.rb, line 49
      def child_pipeline_yaml
        <<~YAML
          image: busybox:latest

          child:
            script:
              - echo "Do your build here"
        YAML
      end
create_child_pipeline() click to toggle source
# File lib/labclient/generator/templates/pipeline_trigger.rb, line 59
def create_child_pipeline
  project = @group.project_create(
    name: 'Child Pipeline',
    description: 'Child Pipeline',
    auto_devops_enabled: false
  )

  # Create Child
  project.file_create(
    'child_pipeline.yml',
    create_file(child_pipeline_yaml)
  )

  # Create Parent
  project.file_create(
    '.gitlab-ci.yml',
    create_file(trigger_child_pipeline_yaml)
  )

  @projects.push project
end
setup_projects() click to toggle source
# File lib/labclient/generator/templates/pipeline_trigger.rb, line 23
def setup_projects
  create_child_pipeline
end
trigger_child_pipeline_yaml() click to toggle source
# File lib/labclient/generator/templates/pipeline_trigger.rb, line 27
      def trigger_child_pipeline_yaml
        <<~YAML
          image: busybox:latest

          build_child:
            stage: build
            script:
              - cp child_pipeline.yml artifact.yml
            artifacts:
              paths:
                - artifact.yml

          trigger_child:
            stage: deploy
            trigger:
              include:
                - artifact: artifact.yml
                  job: build_child

        YAML
      end