X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=docs%2Fjjb%2Flf-macros.rst;h=0f8fd20b2de879f5b1e545575163ee83feb14a1a;hb=e50da79e348b4302edf4f2cc2ed4842830f9cc54;hp=72d898c6e1cd002e65c3fb51aab993dadeb51dd5;hpb=1c466668e179829544193c8c711661ca28901ae6;p=releng%2Fglobal-jjb.git diff --git a/docs/jjb/lf-macros.rst b/docs/jjb/lf-macros.rst index 72d898c6..0f8fd20b 100644 --- a/docs/jjb/lf-macros.rst +++ b/docs/jjb/lf-macros.rst @@ -5,6 +5,14 @@ Global Macros Builders ======== +comment-to-gerrit +----------------- + +This macro will post a comment to the gerrit patchset if the build +creates a file named gerrit_comment.txt +To use this macro add it to the list of builders. + + lf-fetch-dependent-patches -------------------------- @@ -16,6 +24,26 @@ called DEPENDENCY_BUILD_ORDER which can be used if necessary to build projects in the specified order. The order is determined by first patch instance for a project in the patch list. +lf-license-check +---------------- + +Checks files for + +:Required parameters: + + :file-patterns: Space-separated list of file patterns to scan. + For example: \*.go \*.groovy \*.java \*.py \*.sh + :spdx-disable: Disable the SPDX-Identifier checker. + :lhc-version: Version of LHC to use. + :license-exclude-paths: Comma-separated list of paths to exclude from the + license checker. The paths used here will be matched using a contains + rule so it is best to be as precise with the path as possible. + For example a path of '/src/generated/' will be searched as + '**/src/generated/**'. + Example: org/opendaylight/yang/gen,protobuff/messages + :licenses-allowed: Comma-separated list of allowed licenses. + For example: Apache-2.0,EPL-1.0,MIT + lf-infra-create-netrc --------------------- @@ -25,6 +53,13 @@ Create a ~/.netrc file from a Maven settings.xml :server-id: The id of a server as defined in settings.xml. +:Optional parameters: + + :ALT_NEXUS_SERVER: URL of custom nexus server. + If set this will take precedence. + Use this to point at nexus3.$PROJECTDOMAIN + for example. + lf-infra-deploy-maven-file -------------------------- @@ -68,11 +103,29 @@ lf-infra-gpg-verify-git-signature Verify gpg signature of the latest commit message in $WORKSPACE. This command assumes that $WORKSPACE is a git repo. +lf-infra-pre-build +------------------ + +Macro that runs before all builders to prepare the system for job use. + +lf-infra-package-listing +------------------------ + +Lists distro level packages. + lf-infra-packer-build --------------------- Run `packer build` to build system images. +:Required parameters: + + :openstack: Packer template uses an OpenStack builder (true|false). + :openstack-cloud: Sets OS_CLOUD variable to the value of this parameter. + :packer-version: Version of packer to use. + :platform: Build platform as found in the vars directory. + :template: Packer template to build as found in the templates directory. + lf-infra-packer-validate ------------------------ @@ -80,10 +133,30 @@ Run `packer validate` to verify packer configuration. :Required parameters: + :openstack: Packer template uses an OpenStack builder (true|false). + :openstack-cloud: Sets OS_CLOUD variable to the value of this parameter. :packer-cloud-settings: Cloud configuration file. Loaded on the build server as CLOUDENV environment variable. :packer-version: Version of packer to use. +lf-infra-push-gerrit-patch +-------------------------- + +Push a change through a Jenkins job to a Gerrit repository in an automated +way using git-review. + +:Required parameters: + + :gerrit-commit-message: Commit message to assign. + :gerrit-host: Gerrit hostname. + :gerrit-topic: Gerrit topic. + :gerrit-user: Gerrit user-id used for submitting the change. + :reviewers-email: Reviewers email. Space-separated list of + email addresses to CC on the patch. + :project: Gerrit project name. + +.. _lf-infra-ship-logs: + lf-infra-ship-logs ------------------ @@ -99,6 +172,33 @@ lf-jacoco-nojava-workaround Workaround for Jenkins not able to find Java in JaCoCo runs. +.. _lf-maven-central: + +lf-maven-central +---------------- + +Publish artifacts to OSSRH (Maven Central) staging. + +Requires that the project's settings.xml contains a ServerId 'ossrh' with the +credentials for the project's OSSRH account. + +This macro assumes the directory ``$WORKSPACE/m2repo`` contains a Maven 2 +repository which is to upload to OSSRH. + +:Required parameters: + + :mvn-central: Whether or not to upload to mvn-central. (true|false) + :mvn-global-settings: The name of the Maven global settings to use for + Maven configuration. (default: global-settings) + :mvn-settings: The name of settings file containing credentials for the + project. + :ossrh-profile-id: Nexus staging profile ID as provided by OSSRH. + +.. literalinclude:: ../../.jjb-test/lf-macros/lf-maven-central-minimal.yaml + :language: yaml + +.. _lf-maven-install: + lf-maven-install ---------------- @@ -142,15 +242,102 @@ lf-rtd-verify ReadTheDocs verify script. +check-info-votes +---------------- + +Calls shell script to validate votes on a change to an INFO.yaml + +lf-release +---------- + +releases lftools.ini (required) +needed to push to nexus. + +[nexus] +username= +password= + +Then runs ../shell/release-job.sh + + +lf-sigul-sign-dir +----------------- + +Use Sigul to sign a directory via {sign-dir}. + +Requires ``SIGUL_BRIDGE_IP`` configured as a global envvar. + +:Required Parameters: + :sign-artifacts: Whether or not to sign artifacts with Sigul. + :sign-dir: Directory to sign. + :sign-mode: serial|parallel + +lf-infra-provide-docker-cleanup +------------------------------- + +Forcibly removes all of the docker images. + +lf-infra-sonar +--------------- + +Runs Jenkins SonarQube plug-in. + +Requires ``SonarQube Scanner for Jenkins`` + +:Optional Parameters: + :sonar-task: Sonar task to run. (default: "") + :sonar-properties: Sonar configuration properties. (default: "") + :sonar-java-opts: JVM options. (default: "") + :sonar-additional-args: Additional command line arguments. (default: "") + +lf-infra-sonar-with-prescan +--------------------------- + +Runs Jenkins SonarQube plug-in after a pre-scan builder, which is defined by +the macro's caller. + +Requires ``SonarQube Scanner for Jenkins`` + +:Required Parameters: + :lf-sonar-prescan: A builder that will run prior to the Sonar scan. + +:Optional Parameters: + :sonar-task: Sonar task to run. (default: "") + :sonar-properties: Sonar configuration properties. (default: "") + :sonar-java-opts: JVM options. (default: "") + :sonar-additional-args: Additional command line arguments. (default: "") + Parameters ========== +lf-clm-parameters +------------------- + +Provides the policy evaluation stage to run against Nexus IQ Server. +Valid values include: 'build', 'stage-release', 'operate'. + +lf-cmake-parameters +------------------- + +Provides parameters needed by CMake. Should be used by any jobs that need to +call the ``cmake && make && make install`` pattern. + lf-infra-maven-parameters ------------------------- Provides parameters needed by Maven. Should be used by any jobs that need to call the mvn cli. +lf-infra-openstack-parameters +----------------------------- + +Provides parameters needed by OpenStack client CLI. Use in jobs that need to +call the openstack cli. + +:Required Parameters: + + :os-cloud: Configures ``OS_CLOUD`` envvar as used by openstack cli. + lf-infra-parameters ------------------- @@ -170,6 +357,12 @@ lf-infra-tox-parameters Provides parameters needed by python-tox. Should be used by any jobs that need to run `tox `. + +lf-build-with-parameters-maven-release +-------------------------------------- + +Provides parameters needed for maven release jobs 'build with parameters'. + Properties ========== @@ -194,6 +387,12 @@ Provides basic lf-infra recommended publisher configurations which should be used in all job templates. This primary objective of this trigger is to gather build logs and copy them to a log server. +lf-infra-publish-windows +------------------------ + +Windows publisher for use at the end of Windows job templates. Takes care of +cleaning out the workspace at the end of a job. + SCM === @@ -202,6 +401,13 @@ lf-infra-gerrit-scm Basic SCM configuration for Gerrit based projects. +:Required parameters: + + :submodule-timeout: Timeout (in minutes) for checkout operation. + (default: 10) + :submodule-disable: Disable submodule checkout operation. + (default: false) + lf-infra-github-scm ------------------- @@ -211,31 +417,43 @@ On the `branch` variable you can assign `$sha1` or `$ghprbActualCommit` as the value. This will require that the job be triggered via the GHPRB plugin and not manually. -Triggers -======== - -lf-infra-github-pr-trigger --------------------------- +:Required parameters: -Provides configuration for a GitHub PR Trigger. + :submodule-timeout: Timeout (in minutes) for checkout operation. + (default: 10) + :submodule-disable: Disable submodule checkout operation. + (default: false) Wrappers ======== +lf-infra-wrappers-common +------------------------ + +Provides lf-infra recommended wrappers which should be used in every +job-template. It's meant to be used by more specific wrappers below. + lf-infra-wrappers ----------------- Provides lf-infra recommended wrappers which should be used in every -job-template. +job-template that's run on Linux systems. -This wrapper requires that a managed file called `npmrc` exists in the Jenkins. The main use -case here is to point to a npm proxy, on Nexus for example. -The type of the file should be "Custom file". You can set various npmrc settings in it. -Documentation on npm configuration can be found at https://docs.npmjs.com/files/npmrc. -If you are not using npm then it is fine for the file to be empty. +This wrapper requires that a managed file called `npmrc` exists in the Jenkins. +The main use case here is to point to a npm proxy, on Nexus for example. +The type of the file should be "Custom file". You can set various npmrc +settings in it. Documentation on npm configuration can be found at +https://docs.npmjs.com/files/npmrc. If you are not using npm then it is fine +for the file to be empty. Example npmrc: .. code-block:: bash registry=https://nexus3.onap.org/repository/npm.public/ + +lf-infra-wrappers-windows +------------------------- + +Provides lf-infra recommended wrappers which should be used in every +job-template that's run on Windows systems.