【发布时间】:2020-02-28 19:34:22
【问题描述】:
我创建了一个尝试运行脚本的简单管道,然后我将对输出执行其他操作,但是根据 Jenkins,脚本 (CheckTagsDates.sh) 永远不会完成。如果我SSH进入Jenkins从节点,su作为jenkins用户,导航到正确的工作区文件夹,我可以成功执行命令。
pipeline {
agent {label 'agent'}
stages {
stage('Check for releases in past 24hr') {
steps{
sh 'chmod +x CheckTagsDates.sh'
script {
def CheckTagsDates = sh(script: './CheckTagsDates.sh', returnStdout: true)
echo "${CheckTagsDates}"
}
}
}
}
}
这里是 CheckTagsDates.sh 文件的内容
#!/bin/bash
while read line
do
array[ $i ]="$line"
(( i++ ))
done < <( curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/centos/tags'|jq -r '."results"[] | "\(.name)&\(.last_updated)"')
for i in "${array[@]}"
do
echo $i | cut -d '&' -f 1
echo $i | cut -d '&' -f 2
done
这是控制台中脚本的输出
latest
2020-01-18T00:42:35.531397Z
centos8.1.1911
2020-01-18T00:42:33.410905Z
centos8
2020-01-18T00:42:29.783497Z
8.1.1911
2020-01-18T00:42:19.111164Z
8
2020-01-18T00:42:16.802842Z
centos7.7.1908
2019-11-12T00:42:46.131268Z
centos7
2019-11-12T00:42:41.619579Z
7.7.1908
2019-11-12T00:42:34.744446Z
7
2019-11-12T00:42:24.00689Z
centos7.6.1810
2019-07-02T14:42:37.943412Z
【问题讨论】:
-
仅基于我之前的管道,您是否尝试将“echo CheckTagsDates”替换为 echo "${CheckTagsDates}"。老实说,是唯一看起来很奇怪的事情
-
已更新。根据詹金斯,.sh 脚本仍然永远运行并且永远不会退出。
-
您是否在 Jeknins 控制台上获得任何输出?意思是,脚本是否卡在了数据的获取上?或者在它回显了所有信息之后
标签: bash jenkins jenkins-pipeline