nixos/jenkins-job-builder: stop reloadScript on error
Currently there are two calls to curl in the reloadScript, neither which check for errors. If something is misconfigured (like wrong authToken), the only trace that something wrong happened is this log message: Asking Jenkins to reload config <h1>Bad Message 400</h1><pre>reason: Illegal character VCHAR='<'</pre> The service isn't marked as failed, so it's easy to miss. Fix it by passing --fail to curl. While at it: * Add $curl_opts and $jenkins_url variables to keep the curl command lines DRY. * Add --show-error to curl to show short error message explanation when things go wrong (like HTTP 401 error). * Lower-case the $CRUMB variable as upper case is for exported environment variables. The new behaviour, when having wrong accessToken: Asking Jenkins to reload config curl: (22) The requested URL returned error: 401 And the service is clearly marked as failed in `systemctl --failed`.
This commit is contained in:
parent
84a2463499
commit
8ebfd5c45c
@ -128,8 +128,10 @@ in {
|
||||
ownerStamp = ".config-xml-managed-by-nixos-jenkins-job-builder";
|
||||
reloadScript = ''
|
||||
echo "Asking Jenkins to reload config"
|
||||
CRUMB=$(curl -s 'http://${cfg.accessUser}:${cfg.accessToken}@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
|
||||
curl --silent -X POST -H "$CRUMB" http://${cfg.accessUser}:${cfg.accessToken}@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}/reload
|
||||
curl_opts="--silent --fail --show-error"
|
||||
jenkins_url="http://${cfg.accessUser}:${accessToken}@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}"
|
||||
crumb=$(curl $curl_opts "$jenkins_url"'/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
|
||||
curl $curl_opts -X POST -H "$crumb" "$jenkins_url"/reload
|
||||
'';
|
||||
in
|
||||
''
|
||||
|
Loading…
Reference in New Issue
Block a user