Maven Repository
kind: maven
On this page
source | condition | target |
---|---|---|
✔ | ✔ | ✗ |
Description
source
The maven "source" retrieves the latest version from a maven repository
condition
The maven "condition" tests if a version exist on a maven repository.
Parameters
Name | Type | Description | Required |
---|---|---|---|
artifactid | string | Specifies the maven artifact artifactID | |
groupid | string | Specifies the maven artifact groupID | |
repositories | array | Repositories specifies a list of Maven repository where to look for version. Order matter, version is retrieve from the first repository with the last one being Maven Central. | |
repository | string | Specifies the maven repository url + name | |
url | string | Deprecated, please specify the Maven url in the repository | |
version | string | Specifies the maven artifact version | |
versionfilter | object | [S] VersionFilter provides parameters to specify version pattern and its type like regex, semver, or just latest. | |
kind | string | specifies the version kind such as semver, regex, or latest | |
pattern | string | specifies the version pattern according the version kind | |
strict | boolean | strict enforce strict versioning rule. Only used for semantic versioning at this time |
Note | repository can contain Basic Auth credentials following the standard notation: username:password@hostname |
Example
# updatecli.yaml
name: Example with Maven resource
scms:
default:
kind: git
spec:
url: "git@github.com:olblak/charts.git"
branch: master
user: olblak
email: me@olblak.com
directory: "/home/olblak/Project/Jenkins-infra/charts"
sources:
default:
kind: maven
spec:
# optionally provide credentials as user:pass@hostname
# using requiredEnv custom function
repository: "repo.jenkins-ci.org/releases"
groupid: "org.jenkins-ci.main"
artifactid: "jenkins-war"
transformers:
- addsuffix: "-jdk11"
conditions:
docker:
name: "Test Docker Image Published on Registry with the correct tag"
kind: "dockerimage"
spec:
image: "jenkins/jenkins"
imageTag:
name: "Test if jenkins/jenkins docker image used"
scmid: default
kind: yaml
spec:
file: "charts/jenkins/values.yaml"
key: "jenkins.master.image"
value: "jenkins/jenkins"
targets:
imageTag:
name: "jenkins/jenkins docker tag"
kind: yaml
scmid: default
spec:
file: "charts/jenkins/values.yaml"
key: "jenkins.master.imageTag"
What it says:
Sources
Retrieve the version from a Maven source for the artifactID "jenkins-war" from the group "org.jenkins-ci.org" in the repository "releases" located on "repo.jenkins-ci.org" ⇒ 2.264 Append "jdk11" to it ⇒ 2.264-jdk11
Conditions
Then it tests two conditions:
Do we have a docker image published on Dockerhub for the "jenkins/jenkins" using the tag "2.264-jdk11"? Yes, proceed, No then abort
Do we have a the key jenkins.master.image set to the value "jenkins/jenkins" from the file "charts/jenkins/values.yaml" located on the git repository "git@github.com:olblak/charts.git"? ⇒ Yes, proceed, No then abort
Targets
If conditions are all met then updatecli updates, if necessary, the key "jenkins.master.imageTag" to "2.264-jdk11" for the file "charts/jenkins/values.yaml" from the git repository "git@github.com:olblak/charts.git" then commit the change to the branch master.