builders:
- shell: !include-raw: ../shell/comment-to-gerrit.sh
+- builder:
+ name: lf-ansible-config-file-provider
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: "ansible-cfg"
+ target: "$HOME/.ansible/ansible.cfg"
+
- builder:
name: lf-fetch-dependent-patches
builders:
- shell: !include-raw-escape:
- ../shell/license-check.sh
+- builder:
+ name: lf-infra-capture-instance-metadata
+ builders:
+ - shell: !include-raw:
+ - ../shell/capture-instance-metadata.sh
+
- builder:
name: lf-infra-create-netrc
builders:
files:
- file-id: "jenkins-log-archives-settings"
variable: "SETTINGS_FILE"
+ - conditional-step:
+ condition-kind: regex-match
+ regex: "^.*logs-s3.*"
+ label: $S3_BUCKET
+ on-evaluation-failure: dont-run
+ steps:
+ - config-file-provider:
+ files:
+ - file-id: "jenkins-s3-log-ship"
+ target: $HOME/.aws/credentials
- lf-infra-create-netrc:
server-id: logs
- shell: !include-raw:
# Ensure python-tools are installed in case job template does not
# call the lf-infra-pre-build macro.
- ../shell/python-tools-install.sh
+ - shell: !include-raw:
+ - ../shell/sudo-logs.sh
+ - shell: !include-raw:
+ - ../shell/job-cost.sh
- shell: !include-raw:
- ../shell/logs-deploy.sh
- shell: !include-raw:
- ../shell/logs-clear-credentials.sh
- description-setter:
- regexp: "^Build logs: .*"
+ regexp: "(^(Nexus|S3) build logs: .*)"
- builder:
name: lf-infra-package-listing
- builder:
name: lf-infra-packer-build
builders:
+ - lf-ansible-config-file-provider
- conditional-step:
condition-kind: boolean-expression
condition-expression: "{openstack}"
variable: CLOUDENV
- inject:
properties-content: |
+ PACKER_BUILDER={packer-builder}
PACKER_PLATFORM={platform}
PACKER_TEMPLATE={template}
PACKER_VERSION={packer-version}
- shell: !include-raw-escape: ../shell/maven-central.sh
- lf-provide-maven-settings-cleanup
+- builder:
+ name: lf-packagecloud-file-provider
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: ".packagecloud"
+ target: "$HOME/.packagecloud"
+ - config-file-provider:
+ files:
+ - file-id: "packagecloud_api"
+ target: "$HOME/packagecloud_api"
+
+- builder:
+ name: lf-packagecloud-push
+ builders:
+ - inject:
+ properties-content: |
+ BUILD_DIR={build-dir}
+ PACKAGECLOUD_ACCOUNT={packagecloud-account}
+ PACKAGECLOUD_REPO={packagecloud-repo}
+ DEBIAN_DISTRIBUTION_VERSIONS={debian-distribution-versions}
+ RPM_DISTRIBUTION_VERSIONS={rpm-distribution-versions}
+ - shell: !include-raw-escape: ../shell/packagecloud-push.sh
+
- builder:
name: lf-maven-install
builders:
- file-id: "{settings-file}"
variable: "SETTINGS_FILE"
-- builder:
- name: lf-pip-install
- builders:
- - inject:
- properties-content: PIP_PACKAGES={pip-packages}
- - shell: !include-raw-escape: ../shell/pip-install.sh
-
- builder:
name: lf-provide-maven-settings-cleanup
builders:
- shell: !include-raw-escape: ../shell/tox-install.sh
- shell: !include-raw-escape: ../shell/rtd-verify.sh
+- builder:
+ name: lf-rtdv3-build
+ builders:
+ - inject:
+ properties-content: |
+ DEFAULT_VERSION={default-version}
+ - shell: !include-raw-escape: ../shell/rtdv3.sh
+
- builder:
name: check-info-votes
builders:
sonar-name: Sonar
scanner-name: SonarQubeScanner
task: "{sonar-task}"
- project: "sonar-project.properties"
+ project: "{sonar-project-file}"
properties: "{sonar-properties}"
java-opts: "{sonar-java-opts}"
additional-arguments: "{sonar-additional-args}"
+- builder:
+ name: lf-infra-sonar-with-prescan
+ # Run a Sonar Jenkins Plugin
+ builders:
+ - lf-sonar-prescan # Must be defined by caller
+ - sonar:
+ sonar-name: Sonar
+ scanner-name: SonarQubeScanner
+ task: "{sonar-task}"
+ project: "{sonar-project-file}"
+ properties: "{sonar-properties}"
+ java-opts: "{sonar-java-opts}"
+ additional-arguments: "{sonar-additional-args}"
+
+- builder:
+ name: lf-infra-pipeline-verify
+ builders:
+ - shell: !include-raw-escape: ../shell/pipeline-linter.sh
+
##############
# PARAMETERS #
##############
+- parameter:
+ name: lf-autotools-parameters
+ # Parameters for configure-make builds.
+ parameters:
+ - string:
+ name: CONFIGURE_OPTS
+ default: "{configure-opts}"
+ description: |
+ Options to pass to configure.
+ Example: --build=i686-pc-linux-gnu
+ - string:
+ name: INSTALL_PREFIX
+ default: "{install-prefix}"
+ description: |
+ Install prefix for configure.
+ Usually a workspace subdirectory.
+ - string:
+ name: MAKE_OPTS
+ default: "{make-opts}"
+ description: |
+ Options to pass to make.
+ Example: -j8 all
+
- parameter:
name: lf-clm-parameters
parameters:
default: "{node-version}"
description: Version of NodeJS to install.
+- parameter:
+ name: lf-infra-sonar-cli-parameters
+ parameters:
+ - string:
+ name: TOX_DIR
+ default: "{tox-dir}"
+ description: |
+ Path to directory containing tox.ini file.
+ - string:
+ name: TOX_ENVS
+ default: "{tox-envs}"
+ description: |
+ Tox environments to run build against.
+ - string:
+ name: SONAR_SCANNER_VERSION
+ default: "{sonar-scanner-version}"
+ description: |
+ Version of sonar scanner to use.
+ Example: 4.7.0.2747
+ - string:
+ name: SONAR_SCANNER_HOME
+ default: "{sonar-scanner-home}"
+ description: |
+ Sonar scanner home directory.
+ Example: $WORKSPACE/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux
+ - string:
+ name: SONAR_SCANNER_OPTS
+ default: "{sonar-scanner-opts}"
+ description: |
+ Sonar scanner Java options.
+ Example: -server
+
- parameter:
name: lf-infra-tox-parameters
parameters:
default: "{tox-envs}"
description: |
Tox environments to run build against.
- Example: docs,py2,py3
+ Example: docs,py3
- parameter:
name: lf-build-with-parameters-maven-release
- string:
name: VERSION
default: ""
- description: "This is the tag, Example: 1.0.0"
+ description: "Version to release, for example: 1.0.0"
+ - string:
+ name: GIT_TAG
+ default: ""
+ description: "Tag to push to git repo; optional, defaults to VERSION"
- string:
name: LOG_DIR
default: ""
- description: "Log dir, example: project-maven-stage-master/17/"
+ description: "Log dir, for example: project-maven-stage-master/17/"
- string:
- name: DISTRIBUTION_TYPE
+ name: OVERRIDE_SEMVER_REGEX
default: ""
- description: "Set to maven for build with parametes"
+ description: "Override Semantic Version (SemVer) Regular Expression. Ex: '.*'"
+ - choice:
+ name: DISTRIBUTION_TYPE
+ choices:
+ - None
+ - container
+ - maven
+ description: "Set to maven for build with parameters"
- bool:
name: USE_RELEASE_FILE
default: "{use-release-file}"
build-steps:
- lf-infra-sysstat
- lf-infra-package-listing
+ - lf-infra-capture-instance-metadata
- lf-infra-ship-logs
mark-unstable-if-failed: true
- workspace-cleanup:
- "**/*.jenkins-trigger"
fail-build: false
+- publisher:
+ name: global-jjb-email-notification
+ publishers:
+ - email-ext:
+ recipients: "{email-recipients}"
+ reply-to: ""
+ content-type: default
+ subject: "{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!"
+ body: |
+ $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
+
+ Please refer to the logs server URL for console logs when possible
+ and use the Jenkins Build URL as a last resort.
+
+ Jenkins Build URL:
+ $BUILD_URL
+ unstable: true
+ fixed: true
+ send-to:
+ - recipients
+
#######
# SCM #
#######