Switch API to use find rather than add.

This commit is contained in:
Jim Nicholson 2024-02-08 23:01:49 -08:00
parent 96ee3f0051
commit 1d416ce821

View File

@ -26,31 +26,42 @@ Map call(Map config = [:], Map queryParams = [:]) {
Map runConfig = defaults + config Map runConfig = defaults + config
Map query = queryParamsDefaults + queryParams Map query = queryParamsDefaults + queryParams
def version
def response
nexusURL = runConfig.nexusBase + '/' + runConfig.searchAPI nexusURL = runConfig.nexusBase + '/' + runConfig.searchAPI
nexusSearch = buildUrlWithQueryParams(nexusURL, query) nexusSearch = buildUrlWithQueryParams(nexusURL, query)
response = httpRequest acceptType: 'APPLICATION_JSON', response = httpRequest acceptType: 'APPLICATION_JSON',
contentType: 'APPLICATION_JSON', contentType: 'APPLICATION_JSON',
url: nexusSearch, url: nexusSearch,
wrapAsMultipart: false wrapAsMultipart: false
body = response.content body = response.content
assets = readJSON text: body assets = readJSON text: body
latest = assets.items.last() if (assets.items && !assets.items.isEmpty()) {
version = latest.version ?: (latest.name =~ /.*-([0-9\.]+)-([0-9]+)\..*/)[0][1] latest = assets.items.last()
build = latest.version ?: (latest.name =~ /.*-([0-9\.]+)-([0-9]+)\..*/)[0][2] /* We have to use instanceof here. The value SHOULD be null, but it comes back
as class rather than null. This is probably a bug in the Pipeline Utilities
if (version == null) { plugin. */
// Call the error method and pass a string indicating version was null and name is not parseable /* groovylint-disable-next-line Instanceof */
error('Version was null and name is not parseable') if (latest.version instanceof net.sf.json.JSONNull && latest.name) {
echo "Search result version field was null, looking in name field for a version"
def match = (latest.name =~ /(?<=-)([0-9\.]{1,3})(?:-|\.)[^-\.]+/)
if (!match) {
echo "Match: ${match}"
error("Regular expression match failed for latest.name: ${latest.name}")
}
version = match[0][1]
} else if (latest.version) {
version = latest.version
}
} else {
version = '0.0.1'
unstable('No matching assets found, assuming this is the first version')
} }
return version
if (build == null) {
unstable("Build number could not be found in latest asset match (${latest.name})")
}
build = build ?: env.BUILD_NUMBER
runConfig.version = version
runConfig.build = build
return runConfig
} }
/* groovylint-disable-next-line MethodParameterTypeRequired, NoDef */ /* groovylint-disable-next-line MethodParameterTypeRequired, NoDef */