- 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
variable: CLOUDENV
- inject:
properties-content: |
+ PACKER_BUILDER={packer-builder}
PACKER_PLATFORM={platform}
PACKER_TEMPLATE={template}
PACKER_VERSION={packer-version}
+ UPDATE_CLOUD_IMAGE={update-cloud-image}
- shell: !include-raw-escape:
- ../shell/packer-install.sh
- ../shell/packer-build.sh
- shell: !include-raw:
- ../shell/packer-clear-credentials.sh
+- builder:
+ name: lf-infra-update-packer-images
+ builders:
+ - shell: !include-raw: ../shell/update-cloud-images.sh
+
- builder:
name: lf-infra-push-gerrit-patch
builders:
- 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:
name: lf-rtd-verify
builders:
- inject:
- properties-content: DOC_DIR={doc-dir}
+ properties-content: |
+ DOC_DIR={doc-dir}
+ PYTHON={python-version}
- 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}"
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-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: "{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 #
#######