Fix branch variable in github scm
[releng/global-jjb.git] / docs / jjb / lf-macros.rst
1 #############
2 Global Macros
3 #############
4
5 Builders
6 ========
7
8 lf-fetch-dependent-patches
9 --------------------------
10
11 Fetch all patches provided via comment trigger
12
13 This macro will fetch all patches provided via comment trigger and will
14 create a list of projects from those patches via environment variable
15 called DEPENDENCY_BUILD_ORDER which can be used if necessary to build
16 projects in the specified order. The order is determined by first patch
17 instance for a project in the patch list.
18
19 lf-infra-create-netrc
20 ---------------------
21
22 Create a ~/.netrc file from a Maven settings.xml
23
24 :Required parameters:
25
26     :server-id: The id of a server as defined in settings.xml.
27
28 lf-infra-deploy-maven-file
29 --------------------------
30
31 Deploy files to a repository.
32
33 :Required parameters:
34
35     :global-settings-file: Global settings file to use.
36     :group-id: Group ID of the repository.
37     :maven-repo-url: URL of a Maven repository to upload to.
38     :mvn-version: Version of Maven to use.
39     :repo-id: Repository ID
40     :settings-file: Maven settings file to use.
41     :upload-files-dir: Path to directory containing one or more files
42
43 lf-infra-docker-login
44 ---------------------
45
46 Login into a custom hosted docker registry and / or docker.io
47
48 The Jenkins system should have the following global variables defined
49
50 :Environment variables:
51
52     :DOCKER_REGISTRY: The DNS address of the registry (IP or FQDN)
53         ex: nexus3.example.com (GLOBAL variable)
54
55     :REGISTRY_PORTS: Required if DOCKER_REGISTRY is set. Space separated list
56         of the registry ports to login to. ex: 10001 10002 10003 10004
57         (GLOBAL variable)
58
59     :DOCKERHUB_EMAIL: If this variable is set then an attempt to login to
60         DockerHub (docker.io) will be also made. It should be set to the email
61         address for the credentials that will get looked up. Only _one_
62         credential will ever be found in the maven settings file for DockerHub.
63         (GLOBAL variable)
64
65 lf-infra-gpg-verify-git-signature
66 ---------------------------------
67
68 Verify gpg signature of the latest commit message in $WORKSPACE.
69 This command assumes that $WORKSPACE is a git repo.
70
71 lf-infra-packer-build
72 ---------------------
73
74 Run `packer build` to build system images.
75
76 lf-infra-packer-validate
77 ------------------------
78
79 Run `packer validate` to verify packer configuration.
80
81 :Required parameters:
82
83     :packer-cloud-settings: Cloud configuration file. Loaded on the build
84         server as CLOUDENV environment variable.
85     :packer-version: Version of packer to use.
86
87 lf-infra-ship-logs
88 ------------------
89
90 Gather and deploy logs to a log server.
91
92 lf-infra-sysstat
93 ----------------
94
95 Retrieves system stats.
96
97 lf-jacoco-nojava-workaround
98 ---------------------------
99
100 Workaround for Jenkins not able to find Java in JaCoCo runs.
101
102 lf-maven-install
103 ----------------
104
105 Call maven-target builder with a goal of --version to force Jenkins to
106 install the need provided version of Maven. This is needed for any shell scripts
107 that want to use Maven.
108
109 :Required parameters:
110
111     :mvn-version: Version of Maven to install.
112
113 lf-pip-install
114 --------------
115
116 Call pip install to install packages into a virtualenv located in
117 /tmp/v/VENV
118
119 .. note:: The first package listed in PIP_PACKAGES is used as the VENV name.
120
121 .. _lf-provide-maven-settings
122
123 lf-provide-maven-settings
124 -------------------------
125
126 Push a global settings and user settings maven files to the build node.
127
128 lf-provide-maven-settings-cleanup
129 ---------------------------------
130
131 Cleanup maven settings.xml configuration. This should be called at the end of
132 any macros that calles the
133 :ref:`lf-provide-maven-settings <lf-provide-maven-settings>` macro.
134
135 lf-rtd-trigger-build
136 --------------------
137
138 Script to trigger a build on http://readthedocs.org
139
140 lf-rtd-verify
141 -------------
142
143 ReadTheDocs verify script.
144
145 Parameters
146 ==========
147
148 lf-infra-maven-parameters
149 -------------------------
150
151 Provides parameters needed by Maven. Should be used by any jobs that need to
152 call the mvn cli.
153
154 lf-infra-parameters
155 -------------------
156
157 Standard parameters used in the LF CI environments. Gerrit variables are
158 not used by GitHub projects, but defining them is not harmful. Should be used
159 in every job template.
160
161 lf-infra-node-parameters
162 ------------------------
163
164 Provides parameters needed by NodeJS and NPM. Should be used by any jobs that
165 need to run NodeJS or NPM.
166
167 lf-infra-tox-parameters
168 -----------------------
169
170 Provides parameters needed by python-tox. Should be used by any jobs that need
171 to run `tox <https://tox.readthedocs.io>`.
172
173 Properties
174 ==========
175
176 lf-infra-properties
177 -------------------
178
179 Configures the build-discarder plugin for Jenkins with the recommended lf-infra
180 settings. Should be used in all job-templates.
181
182 Publishers
183 ==========
184
185 lf-jacoco-report
186 ----------------
187
188 Provides basic configuration for the JaCoCo plugin.
189
190 lf-infra-publish
191 ----------------
192
193 Provides basic lf-infra recommended publisher configurations which should be
194 used in all job templates. This primary objective of this trigger is to
195 gather build logs and copy them to a log server.
196
197 SCM
198 ===
199
200 lf-infra-gerrit-scm
201 -------------------
202
203 Basic SCM configuration for Gerrit based projects.
204
205 lf-infra-github-scm
206 -------------------
207
208 Basic SCM configuration for GitHub based projects.
209
210 On the `branch` variable you can assign `$sha1` or `$ghprbActualCommit`
211 as the value.  This will require that the job be triggered via
212 the GHPRB plugin and not manually.
213
214 Triggers
215 ========
216
217 lf-infra-github-pr-trigger
218 --------------------------
219
220 Provides configuration for a GitHub PR Trigger.
221
222 Wrappers
223 ========
224
225 lf-infra-wrappers
226 -----------------
227
228 Provides lf-infra recommended wrappers which should be used in every
229 job-template.
230
231 This wrapper requires that a managed file called `npmrc` exists in the Jenkins.  The main use
232 case here is to point to a npm proxy, on Nexus for example.
233 The type of the file should be "Custom file".  You can set various npmrc settings in it.
234 Documentation on npm configuration can be found at https://docs.npmjs.com/files/npmrc.
235 If you are not using npm then it is fine for the file to be empty.
236
237 Example npmrc:
238
239 .. code-block:: bash
240
241    registry=https://nexus3.onap.org/repository/npm.public/