X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=jjb%2Flf-macros.yaml;h=1e697cfc1434112db054aa612935b79824fabd18;hb=de18ad26d2d5c8e0aa65483813ba1092abe80191;hp=bc1ce5862f1f6d2c96cfaddab7be4857d0fe7417;hpb=ab9889f17775e4716a50ecbe879d8519b56c6976;p=releng%2Fglobal-jjb.git diff --git a/jjb/lf-macros.yaml b/jjb/lf-macros.yaml index bc1ce586..1e697cfc 100644 --- a/jjb/lf-macros.yaml +++ b/jjb/lf-macros.yaml @@ -3,6 +3,14 @@ # BUILDERS # ############ +# To take advantage of this macro, have your build write +# out the file 'gerrit_comment.txt' with information to post +# back to gerrit and include this macro in the list of builders. +- builder: + name: comment-to-gerrit + builders: + - shell: !include-raw: ../shell/comment-to-gerrit.sh + - builder: name: lf-fetch-dependent-patches builders: @@ -48,9 +56,16 @@ builders: - shell: !include-raw: ../shell/gpg-verify-git-signature.sh +- builder: + name: lf-infra-pre-build + builders: + - shell: !include-raw-escape: ../shell/python-tools-install.sh + - builder: name: lf-infra-ship-logs builders: + # Ensure no pre-existing .netrc files are overriding logs config + - lf-provide-maven-settings-cleanup - config-file-provider: files: - file-id: 'jenkins-log-archives-settings' @@ -58,7 +73,10 @@ - lf-infra-create-netrc: server-id: logs - shell: !include-raw: - - ../shell/lftools-install.sh + # 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/logs-deploy.sh - shell: !include-raw: - ../shell/logs-clear-credentials.sh @@ -74,6 +92,16 @@ - builder: name: lf-infra-packer-build builders: + - conditional-step: + condition-kind: boolean-expression + condition-expression: '{openstack}' + steps: + - config-file-provider: + files: + - file-id: clouds-yaml + target: '$HOME/.config/openstack/clouds.yaml' + - inject: + properties-content: OS_CLOUD={openstack-cloud} - config-file-provider: files: - file-id: '{packer-cloud-settings}' @@ -92,10 +120,20 @@ - builder: name: lf-infra-packer-validate builders: + - conditional-step: + condition-kind: boolean-expression + condition-expression: '{openstack}' + steps: + - config-file-provider: + files: + - file-id: clouds-yaml + target: '$HOME/.config/openstack/clouds.yaml' + - inject: + properties-content: OS_CLOUD={openstack-cloud} - config-file-provider: files: - file-id: '{packer-cloud-settings}' - variable: 'CLOUDENV' + variable: CLOUDENV - inject: properties-content: | PACKER_VERSION={packer-version} @@ -144,11 +182,27 @@ GROUP_ID={group-id} UPLOAD_FILES_PATH={upload-files-dir} - shell: !include-raw-escape: - - ../shell/lftools-install.sh - ../shell/common-variables.sh - ../shell/deploy-maven-file.sh - lf-provide-maven-settings-cleanup +- builder: + name: lf-maven-central + builders: + - conditional-step: + condition-kind: boolean-expression + condition-expression: '{mvn-central}' + steps: + - lf-provide-maven-settings: + global-settings-file: '{mvn-global-settings}' + settings-file: '{mvn-settings}' + - lf-infra-create-netrc: + server-id: 'ossrh' + - inject: + properties-content: 'OSSRH_PROFILE_ID={ossrh-profile-id}' + - shell: !include-raw-escape: ../shell/maven-central.sh + - lf-provide-maven-settings-cleanup + - builder: name: lf-maven-install builders: @@ -169,20 +223,6 @@ - file-id: '{settings-file}' variable: 'SETTINGS_FILE' -- builder: - name: lf-provide-sigul-configuration - # Push configuration files to interact with sigul - builders: - - config-file-provider: - files: - - file-id: sigul-config - variable: SIGUL_CONFIG - - file-id: sigul-password - variable: SIGUL_PASSWORD - - file-id: sigul-pki - variable: SIGUL_PKI - - shell: !include-raw-escape: ../shell/sigul-configuration.sh - - builder: name: lf-pip-install builders: @@ -207,12 +247,6 @@ # DO NOT fail build if any of the above lines fail. exit 0 -- builder: - name: lf-provide-sigul-configuration-cleanup - # Clear sigul configuration files after we're done using them - builders: - - shell: !include-raw-escape: ../shell/sigul-configuration-cleanup.sh - - builder: name: lf-rtd-trigger-build builders: @@ -227,16 +261,51 @@ builders: - inject: properties-content: DOC_DIR={doc-dir} - - shell: !include-raw-escape: - - ../shell/tox-install.sh - - ../shell/rtd-verify.sh + - shell: !include-raw-escape: ../shell/tox-install.sh + - shell: !include-raw-escape: ../shell/rtd-verify.sh + +- builder: + name: check-info-votes + builders: + - inject: + properties-content: JENKINS_SSH_CREDENTIAL={jenkins-ssh-credential} + - shell: !include-raw-escape: ../shell/check-info-votes.sh + +- builder: + name: lf-release + builders: + - config-file-provider: + files: + - file-id: lftoolsini + target: '$HOME/.config/lftools/lftools.ini' + - shell: !include-raw: ../shell/release-job.sh - builder: - name: lf-sigul-install + name: lf-sigul-sign-dir # Requires that Jenkins be configured with SIGUL_BRIDGE_IP as a global # Environment variable - builder: - - shell: !include-raw-escape: ../shell/sigul-install.sh + builders: + - conditional-step: + condition-kind: boolean-expression + condition-expression: '{sign-artifacts}' + steps: + - config-file-provider: + files: + - file-id: sigul-config + variable: SIGUL_CONFIG + - file-id: sigul-password + variable: SIGUL_PASSWORD + - file-id: sigul-pki + variable: SIGUL_PKI + - shell: !include-raw-escape: ../shell/sigul-configuration.sh + - shell: !include-raw-escape: ../shell/sigul-install.sh + - inject: + properties-content: | + SIGN_DIR={sign-dir} + SIGN_MODE={sign-mode} + - shell: !include-raw-escape: + - ../shell/sigul-sign-dir.sh + - shell: !include-raw-escape: ../shell/sigul-configuration-cleanup.sh - builder: name: lf-infra-provide-docker-cleanup @@ -310,12 +379,6 @@ # yamllint disable-line rule:line-length 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 @@ -386,15 +449,6 @@ If using GitHub, in a manual build override with a branch path or sha1 hash to a specific commit. For example: 'origin/master' - # Tools - - string: - name: LFTOOLS_VERSION - default: '{lftools-version}' - description: | - Version of lftools to install. Can be a specific version like - '0.6.0' or a PEP-440 definition. - https://www.python.org/dev/peps/pep-0440/ - For example '<1.0.0' or '>=1.0.0,<2.0.0'. - parameter: name: lf-infra-node-parameters @@ -488,6 +542,34 @@ - '**/*.jenkins-trigger' fail-build: false +- publisher: + name: lf-infra-publish-windows + # lf-infra macro to finish up a build. + # + # Handles the following: + # - Shipping logs to Nexus logs site repository + # - Cleanup workspace + publishers: + # TODO: RELENG-1228 Develop log shipping script for Windows systems + # - postbuildscript: + # builders: + # - role: BOTH + # build-on: + # - ABORTED + # - FAILURE + # - NOT_BUILT + # - SUCCESS + # - UNSTABLE + # build-steps: + # - lf-infra-ship-logs-windows + # mark-unstable-if-failed: true + - workspace-cleanup: + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - '**/*.jenkins-trigger' + fail-build: false + ####### # SCM # ####### @@ -504,7 +586,9 @@ skip-tag: true wipe-workspace: true submodule: + disable: '{submodule-disable}' recursive: '{submodule-recursive}' + timeout: '{submodule-timeout}' choosing-strategy: '{choosing-strategy}' - scm: @@ -519,7 +603,9 @@ skip-tag: true wipe-workspace: true submodule: + disable: '{submodule-disable}' recursive: '{submodule-recursive}' + timeout: '{submodule-timeout}' choosing-strategy: '{choosing-strategy}' ############ @@ -527,7 +613,7 @@ ############ - wrapper: - name: lf-infra-wrappers + name: lf-infra-wrappers-common wrappers: - mask-passwords - timeout: @@ -536,14 +622,26 @@ timeout-var: 'BUILD_TIMEOUT' fail: true - timestamps - - ssh-agent-credentials: - users: - - '{jenkins-ssh-credential}' - openstack: single-use: true + +- wrapper: + name: lf-infra-wrappers + wrappers: + - lf-infra-wrappers-common: + build-timeout: '{build-timeout}' - config-file-provider: files: - file-id: npmrc target: '$HOME/.npmrc' - file-id: pipconf target: '$HOME/.config/pip/pip.conf' + - ssh-agent-credentials: + users: + - '{jenkins-ssh-credential}' + +- wrapper: + name: lf-infra-wrappers-windows + wrappers: + - lf-infra-wrappers-common: + build-timeout: '{build-timeout}'