With Jenkins lock for publishing
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. .classpath
  2. .gitignore
  3. .project
  4. .settings/
  5. LICENSE
  6. README.md
  7. src/
  8. vars/
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