Add lf-sonar-common job-template
[releng/global-jjb.git] / docs / jjb / lf-macros.rst
index 1ab522c..9b5773a 100644 (file)
@@ -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
 --------------------------
 
@@ -95,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
 ------------------------
 
@@ -107,6 +133,8 @@ 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.
@@ -144,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
 ----------------
 
@@ -187,20 +242,83 @@ 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 Sonar plug-in
+
+: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
 -------------------
 
@@ -244,6 +362,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
 ===
 
@@ -252,6 +376,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
 -------------------
 
@@ -261,23 +392,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.
 
+:Required parameters:
+
+    :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.