- description-setter:
regexp: '^Build logs: .*'
+- builder:
+ name: lf-infra-packer-build
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: packer-cloud-env
+ variable: CLOUDENV
+ - inject:
+ properties-content: |
+ PACKER_PLATFORM={platform}
+ PACKER_TEMPLATE={template}
+ PACKER_VERSION={packer-version}
+ - shell: !include-raw-escape:
+ - ../shell/packer-install.sh
+ - ../shell/packer-build.sh
+ - shell: !include-raw:
+ - ../shell/packer-clear-credentials.sh
+
+- builder:
+ name: lf-infra-packer-validate
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: 'packer-cloud-env'
+ variable: 'CLOUDENV'
+ - inject:
+ properties-content: |
+ PACKER_VERSION={packer-version}
+ - shell: !include-raw-escape:
+ - ../shell/packer-install.sh
+ - ../shell/packer-validate.sh
+ - shell: !include-raw:
+ - ../shell/packer-clear-credentials.sh
+
- builder:
name: lf-infra-sysstat
builders:
builders:
- shell: 'mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes'
+- builder:
+ name: lf-infra-deploy-maven-file
+ # Deploy files to a repository.
+ #
+ # The builder requires passing the following parameters
+ # REPO_ID: Repository ID
+ # GROUP_ID: Group ID of the repository
+ # UPLOAD_FILES_PATH: Path to directory containing one or more files
+ builders:
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
+ - lf-provide-maven-settings:
+ global-settings-file: '{global-settings-file}'
+ settings-file: '{settings-file}'
+ - inject:
+ properties-content: |
+ REPO_ID={repo-id}
+ GROUP_ID={group-id}
+ UPLOAD_FILES_PATH={files-dir}
+ - shell: !include-raw-escape:
+ - ../shell/lftools-install.sh
+ - ../shell/deploy-maven-file.sh
+ - lf-provide-maven-settings-cleanup
+
- builder:
name: lf-maven-install
# call maven-target builder with a goal of --version to force Jenkins to
variable: 'GLOBAL_SETTINGS_FILE'
- file-id: '{settings-file}'
variable: 'SETTINGS_FILE'
+
- builder:
name: lf-provide-maven-settings-cleanup
# Clear maven settings files after we are done using them
# PARAMETERS #
##############
+- parameter:
+ name: lf-infra-maven-parameters
+ parameters:
+ - string:
+ name: MAVEN_OPTS
+ default: '{mvn-opts}'
+ description: |
+ Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
+ - string:
+ name: MAVEN_PARAMS
+ default: '{mvn-params}'
+ description: |
+ Maven parameters to pass to the mvn command.
+ - string:
+ name: MVN
+ # Sets an env var for shell scripts to be able to call the dynamically
+ # installed maven without having to calculate the path themselves.
+ default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{mvn-version}/bin/mvn'
+ description: 'Maven selector to be used by shell scripts'
+ - string:
+ name: STAGING_PROFILE_ID
+ default: '{staging-profile-id}'
+ description: |
+ Nexus staging profile ID.
+
+
+- parameter:
+ name: lf-infra-openstack-parameters
+ parameters:
+ - string:
+ name: OS_CLOUD
+ default: '{os-cloud}'
+ description: |
+ The name of a cloud configuration in clouds.yaml. OS_CLOUD is a
+ variable name that is significant to openstack client as a
+ environment variable. Please refer to the documentation for
+ further details.
+ https://docs.openstack.org/developer/python-openstackclient/
+
+
- parameter:
name: lf-infra-parameters
# Standard parameters used in the LF CI environments. Gerrit variables are
Parameter to identify a Gerrit project. This is typically the
project repo path as exists in Gerrit.
For example: ofextensions/circuitsw
+ - string:
+ name: STREAM
+ default: '{stream}'
+ description: |
+ Stream is often set to the same name as 'branch' but can
+ sometimes be used as a name representing a project's release code
+ name.
- string:
name: GERRIT_PROJECT
default: '{project}'
Note that Gerrit will override this parameter automatically if a
job is triggered by Gerrit.
-- parameter:
- name: lf-infra-maven-parameters
- parameters:
- - string:
- name: MAVEN_OPTS
- default: '{mvn-opts}'
- description: |
- Maven Java opts. Example: -Xmx1024m -XX:MaxPermSize=256m
- - string:
- name: MAVEN_PARAMS
- default: '{mvn-params}'
- description: |
- Maven parameters to pass to the mvn command.
- - string:
- name: MVN
- # Sets an env var for shell scripts to be able to call the dynamically
- # installed maven without having to calculate the path themselves.
- default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{mvn-version}/bin/mvn'
- description: 'Maven selector to be used by shell scripts'
- - string:
- name: STAGING_PROFILE_ID
- default: '{staging-profile-id}'
- description: |
- Nexus staging profile ID.
- parameter:
name: lf-infra-tox-parameters
recursive: '{submodule-recursive}'
choosing-strategy: '{choosing-strategy}'
+############
+# TRIGGERS #
+############
+
+- trigger:
+ name: lf-infra-github-pr-trigger
+ triggers:
+ - github-pull-request:
+ trigger-phrase: '{trigger-phrase}'
+ only-trigger-phrase: '{only-trigger-phrase}'
+ status-context: '{status-context}'
+ permit-all: '{permit-all}'
+ github-hooks: '{github-hooks}'
+ auto-close-on-fail: false
+ org-list:
+ - '{github-org}'
+ white-list: '{obj:github_pr_whitelist}'
+ admin-list: '{obj:github_pr_admin_list}'
+
############
# WRAPPERS #
############