- builder:
name: lf-docker-get-container-tag
builders:
- - conditional-step:
- condition-kind: regex-match
- regex: git-describe-params
- label: '{docker-use-params-from}'
- steps:
- - shell: !include-raw-escape:
- - ../shell/docker-get-git-describe.sh
- - conditional-step:
- condition-kind: regex-match
- regex: yaml-file-params
- label: '{docker-use-params-from}'
- steps:
- - shell: !include-raw-escape:
- - ../shell/docker-get-yaml-tag.sh
- inject:
- # Import the docker image information from the previous build step
+ properties-content: |
+ CONTAINER_TAG_METHOD={container-tag-method}
+ CONTAINER_TAG_YAML_DIR={container-tag-yaml-dir}
+ DOCKER_ROOT={docker-root}
+ - shell: !include-raw-escape:
+ - ../shell/docker-get-container-tag.sh
+ - inject:
+ # Import the container tag set by this build step
properties-file: 'env_docker_inject.txt'
-
- builder:
name: lf-docker-build
builders:
DOCKER_NAME={docker-name}
DOCKER_ROOT={docker-root}
CONTAINER_PULL_REGISTRY={container-public-registry}
+ CONTAINER_PUSH_REGISTRY={container-push-registry}
- shell: !include-raw-escape:
- ../shell/docker-build.sh
submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
- pre_docker_build_script: ''
- post_docker_build_script: ''
+ pre_docker_build_script: '# pre docker build script goes here'
+ post_docker_build_script: '# post docker build script goes here'
disable-job: 'false'
docker-root: '$WORKSPACE'
docker-build-args: ''
git-url: '$GIT_URL/$PROJECT'
+ container-tag-method: 'latest'
+ # TODO: how to interpolate value of {docker-root} parameter?
+ container-tag-yaml-dir: ''
#####################
# Job Configuration #
- comment-added-contains-event:
comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
+ gerrit_trigger_file_paths:
+ - compare-type: REG_EXP
+ pattern: '.*'
+
+ # github_included_regions MUST match gerrit_trigger_file_paths
+ github_included_regions:
+ - '.*'
+
builders:
- lf-infra-pre-build
- lf-infra-docker-login:
global-settings-file: 'global-settings'
settings-file: '{mvn-settings}'
- shell: '{pre_docker_build_script}'
- - lf-docker-get-container-tag
- - lf-docker-build
+ - lf-docker-get-container-tag:
+ container-tag-method: '{container-tag-method}'
+ container-tag-yaml-dir: '{container-tag-yaml-dir}'
+ docker-root: '{docker-root}'
+ - lf-docker-build:
+ docker-build-args: '{docker-build-args}'
+ docker-name: '{docker-name}'
+ docker-root: '{docker-root}'
+ container-public-registry: '{container-public-registry}'
+ container-push-registry: '{container-push-registry}'
- shell: '{post_docker_build_script}'
- lf-provide-maven-settings-cleanup
- docker_merge_common: &docker_merge_common
name: docker-merge-common
+ cron: ''
scm:
- lf-infra-gerrit-scm:
- comment-added-contains-event:
comment-contains-value: remerge$
+ gerrit_trigger_file_paths:
+ - compare-type: REG_EXP
+ pattern: '.*'
+
+ # github_included_regions MUST match gerrit_trigger_file_paths
+ github_included_regions:
+ - '.*'
+
builders:
- lf-infra-pre-build
- lf-infra-docker-login:
global-settings-file: 'global-settings'
settings-file: '{mvn-settings}'
- shell: '{pre_docker_build_script}'
- - lf-docker-get-container-tag
- - lf-docker-build
+ - lf-docker-get-container-tag:
+ container-tag-method: '{container-tag-method}'
+ container-tag-yaml-dir: '{container-tag-yaml-dir}'
+ docker-root: '{docker-root}'
+ - lf-docker-build:
+ docker-build-args: '{docker-build-args}'
+ docker-name: '{docker-name}'
+ docker-root: '{docker-root}'
+ container-public-registry: '{container-public-registry}'
+ container-push-registry: '{container-push-registry}'
- shell: '{post_docker_build_script}'
# Provided all steps have already passed, push the docker image
- - lf-docker-push
+ - lf-docker-push:
+ container-push-registry: '{container-push-registry}'
- lf-provide-maven-settings-cleanup
#################
branches:
- branch-compare-type: ANT
branch-pattern: '**/{branch}'
+ file-paths: '{obj:gerrit_trigger_file_paths}'
- job-template:
name: '{project-name}-docker-verify-{stream}'
<<: *docker_merge_common
triggers:
+ - timed: '{obj:cron}'
- gerrit:
server-name: '{gerrit-server-name}'
trigger-on: '{obj:gerrit_merge_triggers}'
branches:
- branch-compare-type: ANT
branch-pattern: '**/{branch}'
+ file-paths: '{obj:gerrit_trigger_file_paths}'
- job-template:
name: '{project-name}-docker-merge-{stream}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
triggers:
+ - timed: '{obj:cron}'
- github
- pollscm:
cron: ''