-
Type: New Feature
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Jenkins X
-
Epic Link:
-
Sprint:nxplatform 11.1.11
-
Story Points:5
To allow the Nuxeo Platform build, aka the nuxeo GitHub repository.
We need at least:
- A Dockerfile describing the Maven container Docker image, based on the default one gcr.io/jenkinsxio/builder-maven-java11 and including the conversion tools.
- A Jenkinsfile for the pipeline building the builder.
-------------------------------------------------
See https://github.com/nuxeo/nuxeo-jenkins-x-builders
In particular:
- the v0.0.1 release (v0.0.1 is the GitHub tag, the image tag is 0.0.1)
- the Dockerfile
- the Jenkinsfile
- the Skaffold build directive
Motivation to have a mono-repository for several builders (at the moment: "builder-maven-java11-nuxeo" and "builder-nodejs-njx"):
- Simpler to maintain (shared Jenkinsfile, scripts, skaffold.yaml, ...).
- Simpler to release: one release and same versioning for all the builders.
Though releasing all builders for just a bug fix in one of them seems overkill, since most of the upgrades will be implied by a "jenkinsxio/builder-base" image upgrade, it makes sense to upgrade all the builders at one go. - Ensures that all the builders are built on the same Jenkins X instance, thus with the same versions of the build tools such as jx, skaffold, etc.
Next steps:
- Use a "jenkins" user in the agent to not run the pipelines as root, see NXBT-2892.
- Currently the builders are built in the "platform" team's Jenkins X instance.
We should build the builders, if generic enough, on a dedicated Jenkins X instance so that:- The version of the Jenkins X platform (and related tools, such as jx, skaffold, ...) is managed independently from a given team (fixed, then upgraded when wanted).
In fact, the base Jenkins X image version is hardcoded and shared between all builders, see for instance the builder-maven-java11-nuxeo Dockerfile. We should have an automatic way to upgrade all our builders depending on the deployed Jenkins X platform version. - The builders don't get built by each team's Jenkins X instance.
- The version of the Jenkins X platform (and related tools, such as jx, skaffold, ...) is managed independently from a given team (fixed, then upgraded when wanted).