Use a Jenkins lock to prevent concurrent publishing

This resource lock needs not be registered globally in Jenkins; if
it doesn't exist, the "Lockable Resources" plug-in will use an
ephemeral lock that exists as long as there are builds referencing
it. [1] The EGit Jenkins does have this plug-in installed.

Still use separate tmp directories per build; the Jenkins lock will
protect only concurrent builds; other things that might concurrently
do things with these directories might still interfere.

[1] https://plugins.jenkins.io/lockable-resources/

Change-Id: I2b6c4e854d57b0cf6aaa301cff1f35acb5ec23cd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
1 file changed
tree: 54c3cc187824ebf7e9033c000367f44f6120c87b
  1. .settings/
  2. src/
  3. vars/
  4. .classpath
  5. .gitignore
  6. .project
  7. LICENSE
  8. README.md
README.md

EGit Jenkins Pipelines

This repository contains the EGit Jenkins pipeline library.

For general information about Jenkins pipeline shared libraries see the Jenkins documentation.

Jenkins pipelines are written in Groovy; for development in Eclipse it may help to install the Groovy Development Tools. Be aware, though, that GDT patches the JDT Java compiler; a particular version of GDT thus works only with a particular version of JDT. If you use an Eclipse I-build (nightly development build for the next release), GDT will fail to install.

The library is intended to be used for the Jenkins builds of the egit/egit and the egit/egit-github repositories.

It provides several kinds of general pipelines that can be configured:

  • verifyBuild is a simple pipeline that builds and runs the tests for a Gerrit patch set.
  • productBuild is intended to be run when a Gerrit patch set is submitted and builds a full distribution (nightly or stable build).

uiNode encapsulates the general Jenkins slave setup to run a build including UI tests on a JIRO node.

Directory src contains auxiliary Groovy classes encapsulating generally useful operations.

License

The content of this repository is licensed under the EPL 2.0.

SPDX-License-Identifier: EPL-2.0