Source
Source define the 'what' you want to update
On this page
Description
The "source" stage retrieve an information from a third "resource" like a file, an api and then inject that information in later stages.
Parameters
Name | Type | Description | Required |
---|---|---|---|
dependson | array | dependson specifies which resources must be executed before the current one | |
kind | |||
name | string | name specifies the resource name | |
scmid | string | scmid specifies the scm configuration key associated to the current resource | |
spec | object | Spec defines a specification for a "file" resource parsed from an updatecli manifest file | |
transformers | array | transformers defines how the default input value need to be transformed | |
addprefix | string | AddPrefix adds a prefix to the transformer input value | |
addsuffix | string | AddSuffix adds a suffix to the transformer input value | |
find | string | Find searches for a specific value if it exists and return false if it doesn't | |
findsubmatch | object | Find searches for a specific value if it exists then return the value using regular expression | [pattern] |
replacer | object | Replacer specifies what value needs to be changed and how | [from to] |
replacers | array | Replacers specifies a list of replacer instruction | |
semverinc | string | SemvVerInc specifies a comma separated list semantic versioning component that needs to be upgraded. | |
trimprefix | string | TrimPrefix removes a prefix to the transformer input value | |
trimsuffix | string | TrimSuffix removes the suffix from the transformer input value |
Example
updatecli.yaml
sources:
latestVersion:
name: Get latest Venom release
kind: githubRelease
spec:
owner: ovh
repository: venom
# Value from environment variable '$UPDATECLI_GITHUB_TOKEN'
token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
# Value from environment variable '$UPDATECLI_GITHUB_ACTOR'
username: '{{ requiredEnv "UPDATECLI_GITHUB_ACTOR" }}'
versioning:
kind: semver
transformers:
- addPrefix: "v"
In this example we are looking for the latest release tag from https://github.com/jenkinsci/jenkins which is 'jenkins-2.75'. Unfortunately it contains the prefix "jenkins" which is useless for later stages, so we replace 'jenkins-' by nothing so the output of the source becomes "jenkins/jenkins:2.275-jdk" which is a valid docker image that can now be used in the later stages.