Add macro to delete an openstack heat stack
[releng/global-jjb.git] / docs / jjb / lf-macros.rst
index d6e5f14..ce7ac0d 100644 (file)
@@ -16,6 +16,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 +45,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 +95,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
 ------------------------
 
@@ -84,6 +129,24 @@ Run `packer validate` to verify packer configuration.
         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
 ------------------
 
@@ -118,7 +181,7 @@ Call pip install to install packages into a virtualenv located in
 
 .. note:: The first package listed in PIP_PACKAGES is used as the VENV name.
 
-.. _lf-provide-maven-settings
+.. _lf-provide-maven-settings:
 
 lf-provide-maven-settings
 -------------------------
@@ -142,15 +205,53 @@ lf-rtd-verify
 
 ReadTheDocs verify script.
 
+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.
+
+lf-infra-provide-docker-cleanup
+-------------------------------
+
+Forcibly removes all of the docker images.
+
 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
 -------------------
 
@@ -194,6 +295,18 @@ 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-stack-delete
+---------------
+
+Requirements:
+
+* lftools >= v0.17.0
+
+Delete an openstack heat stack. Use at the end of a job that creates a stack.
+
+This macro requires a parameter defined in the job named STACK_NAME
+containing the name of the stack to delete.
+
 SCM
 ===
 
@@ -207,13 +320,9 @@ lf-infra-github-scm
 
 Basic SCM configuration for GitHub based projects.
 
-Triggers
-========
-
-lf-infra-github-pr-trigger
---------------------------
-
-Provides configuration for a GitHub PR Trigger.
+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.
 
 Wrappers
 ========
@@ -223,3 +332,15 @@ lf-infra-wrappers
 
 Provides lf-infra recommended wrappers which should be used in every
 job-template.
+
+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/