Hi,

for the LDAP API I created a Jenkinsfile and a corresponding Jenkins
pipeline job (there is the classic view [1] and the more fancy "blue
ocean" UI [2]). This LDAP API pipeline is quite simple: The code is
built and tests are executed on various platforms (Windows with Java 8,
Linux with Java 8, 11, 12). When that is successful there is another
build that deploys the snapshot JARs to Nexus. I alrady disabled the old
LDAP API Jenkins job to not build twice. The Sonar Job is not included
yet, there I have to find out if/how it's possible to integrate.

I'd like to create similar pipelines for the other projects, then with
more steps (e.g. installer tests etc).

The advantages are (IMHO):
* The Jenkins job is defined "as code" and is part of the Git repository
and versioned
* There is only one job with multiple stages/steps which makes the
Jenkins setup better manageable
* With the current configuration, in case of a failure, there is only
one failure email sent
* It's easy to add additional build steps

Some build steps are based on a Docker image. This allows to define
custom tools and dependencies (e.g. new Java version not yet installed
on Jenkins, LDAP cmd line tools, other LDAP servers, Kerberos
configuration) for more sophisticated testing. All custom Docker images
are defined in [3].

Let me know what you think or if you have objections or questions.
Otherwise I'd continue with more Jenkinsfiles :)

Kind Regards,
Stefan

[1]
https://builds.apache.org/view/D/view/Directory/job/dir-ldap-api-pipeline
[2]
https://builds.apache.org/blue/organizations/jenkins/dir-ldap-api-pipeline/activity
[3] https://github.com/apache/directory-buildtools

Reply via email to