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
--------------------------
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
------------------------
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.
+
+:Optional parameters:
+
+ :update-cloud-image: Submit a change request to update new built cloud
+ image to Jenkins.
+
lf-infra-packer-validate
------------------------
: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.
Retrieves system stats.
+lf-infra-update-packer-images
+-----------------------------
+
+Find and update the new built cloud image{s} in the ci-management source
+repository.
+
+
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
----------------
any macros that calles the
:ref:`lf-provide-maven-settings <lf-provide-maven-settings>` macro.
-.. _provide-sigul-config:
+lf-rtd-trigger-build
+--------------------
+
+Script to trigger a build on http://readthedocs.org
-lf-provide-sigul-configuration
-------------------------------
+lf-rtd-verify
+-------------
-Provides sigual configuration to the Jenkins build node.
+ReadTheDocs verify script. Installs and runs tox.
-Requires the following Config File Provider managed files in Jenkins
-preconfigured.
+:Required parameters:
-* sigul-config
-* sigul-password
-* sigul-pki
+ :doc-dir: Document directory.
+ :python-version: Python version.
-.. _provide-sigul-config-cleanup:
+lf-rtdv3-build
+---------------
-lf-provide-sigul-configuration-cleanup
---------------------------------------
+Read the docs scripts that leverage the new Read the Docs v3 api
+`RTD v3 API <https://docs.readthedocs.io/en/stable/api/v3.html>`_
+Runs tox to verify that the docs are good and then runs the RTDv3 shell script.
+This script handles creating projects as needed, assiging subprojects to the main
+read the docs project and triggering builds to update the documentation.
+Jobs will run but skip verify bits until a .readthedocs.yaml is found in the root
+of their repository.
-Cleanup configuration provided by `provide-sigul-config`.
-lf-rtd-trigger-build
---------------------
+check-info-votes
+----------------
-Script to trigger a build on http://readthedocs.org
+Calls shell script to validate votes on a change to an INFO.yaml
-lf-rtd-verify
--------------
+lf-release
+----------
-ReadTheDocs verify script.
+releases lftools.ini (required)
+needed to push to nexus.
-lf-sigul-install
-----------------
+[nexus]
+username=
+password=
-Install Sigul.
+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``
+
+.. note:: Sonar properties can be set directly in the job definition by
+ setting the sonar-project-file to ``""`` and adding all properties under
+ ``sonar-properties``.
+
+:Optional Parameters:
+ :sonar-task: Sonar task to run. (default: "")
+ :sonar-project-file: The filename for the project's properties
+ (default: "sonar-project.properties")
+ :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``
+
+.. note:: Sonar properties can be set directly in the job definition by
+ setting the sonar-project-file to ``""`` and adding all properties under
+ ``sonar-properties``.
+
+: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-project-file: The filename for the project's properties
+ (default: "sonar-project.properties")
+ :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 python-tox. Should be used by any jobs that need
to run `tox <https://tox.readthedocs.io>`.
+
+lf-build-with-parameters-maven-release
+--------------------------------------
+
+Provides parameters needed for maven release jobs 'build with parameters'.
+
Properties
==========
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
===
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
-------------------
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.