我确信这是一个简单的修复,但我是一般的编程和Groovy的新手.
我试图按照本指南在Jenkins 2管道作业中启用松弛通知,但粘贴和自定义最终代码块会给我以下错误;
Method definition not expected here. Please define the method at an appropriate place or perhaps try using a block/Closure instead.
Run Code Online (Sandbox Code Playgroud)
这是我现在的代码,虽然我已经用一些代替了安全性.错误发生在该def notifyBuild(String buildStatus = 'STARTED') {行.
node('on-demand-t2large'){
stage ('Checkout') {
checkout( checkout stuff here )
}
stage ('Build') {
try {
notifyBuild('STARTED')
dir("place") {
sh 'script name'
}
}
catch (e) {
// If there was an exception thrown, the build failed
currentBuild.result = "FAILED"
throw e
}
finally {
// Success or …Run Code Online (Sandbox Code Playgroud) 我正在编写一个管道作业,它将调用另一个脚本来执行.Jenkins文件和脚本存在于同一目录中,但作业无法找到要运行的脚本.
这是脚本的相关部分;
stage ('Update') {
try {
dir('jenkins/pipeline/update-jenkins-plugins-ppln') {
sh 'ls -l'
sh 'update-plugins.sh'
}
}
Run Code Online (Sandbox Code Playgroud)
返回以下错误;
[update-jenkins-plugins-ppln] Running shell script
+ ls -l
total 8
-rw-r--r-- 1 jenkins jenkins 2441 Dec 20 09:34 Jenkinsfile
-rwxr-xr-x 1 jenkins jenkins 506 Dec 19 14:06 update-plugins.sh
[Pipeline] sh
[update-jenkins-plugins-ppln] Running shell script
+ update-plugins.sh
/var/lib/jenkins/workspace/update-jenkins-plugins-ppln/jenkins/pipeline/update-jenkins-plugins-ppln@tmp/durable-11cefdd0/script.sh: 2: /var/lib/jenkins/workspace/update-jenkins-plugins-ppln/jenkins/pipeline/update-jenkins-plugins-ppln@tmp/durable-11cefdd0/script.sh: update-plugins.sh: not found
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用的路径是正确的,因为根据ls我需要的文件update-plugins.sh位于我已经修改过的目录中.但出于某种原因,当实际搜索脚本时,Jenkins正在添加@tmp/durable-8d48734f/script.sh到路径上.
各种故障排除
为什么Jenkins添加@tmp位,有没有办法防止这种行为?
我将在序言中说"不,找到一种不同的方式去做"这是一个可以接受的答案.
是否有一种可靠的方法可以在bash变量中存储一小段JSON,以便在从同一脚本运行的AWS CLI命令中使用?
我将从Jenkins运行一个正在更新AWS Route53记录的工作,该记录需要UPSERT一个带有记录更改的JSON文件.因为它是从Jenkins运行的,所以我没有本地存储可以保存这个文件,而且我真的很想避免每次运行这个项目时都需要进行git checkout(这将是每小时一次).
理想情况下,将数据存储在variable($foo)中并将其作为change-resource-record-sets命令的一部分进行调用将是最方便的,因为Jenkins设置,但我不熟悉如何在bash中引用/存储JSON - 它可以安全地完成吗?
在这种情况下,具体的JSON如下;
{"Comment":"Update DNSName.","Changes":[{"Action":"UPSERT","ResourceRecordSet":{"Name":"alex.","Type":"A","AliasTarget":{"HostedZoneId":"######","DNSName":"$bar","EvaluateTargetHealth":false}}}]}
Run Code Online (Sandbox Code Playgroud)
作为一个额外的复杂功能,DNSName值$bar- 需要扩展.
如果需要,使用AWS CLI和jq,我正在尝试在特定仓库中获取最新图像的标记.
让我们调用回购foo,并说最新的图像被标记bar.我用什么查询返回bar?
我得到了
aws ecr list-images --repository-name foo
Run Code Online (Sandbox Code Playgroud)
然后意识到列表图像文档没有提供日期作为可查询字段的引用.在终端中粘贴以上内容为我提供了仅包含标签和摘要的密钥对,没有日期.
还有一些方法可以获得"最新"的图像吗?我可以假设它将永远是返回输出中的第一个或最后一个吗?
缺少明显的东西.如何将groovy脚本中的变量传递给shell命令?如果对语法很重要,这是在Jenkinsfile的上下文中.
def COLOR
node('nodename'){
stage ('color') {
COLOR = "green"
echo "color is $COLOR"
sh '''COLOR=${COLOR}
echo $COLOR'''
}
}
Run Code Online (Sandbox Code Playgroud)
我希望看到shell打印green,但我得到以下内容;
[Pipeline] echo
color is green
[Pipeline] sh
[job] Running shell script
+ COLOR=
+ echo
Run Code Online (Sandbox Code Playgroud)
我必须使用三重引用,sh因为一旦我理解了这些内容将会进入那里.
我看到了大量有关制作自定义Slack命令的文档,但我正在尝试为现有命令命名。
IE,我们有/bluejeans启动Bluejeans会议的命令,但是由于内部的一个玩笑,我希望给别名起个别名,这样也可以开始/bleujean。
我在GUI中找不到位置,我是否缺少明显的东西?
TL; DR:显然,在Jenkins管道作业中,您可以轻松地向下游传递参数.我想知道的是你是否可以将它们传递到上游.
我们有三份工作; job_one,job_two和job_three.这些通常是单独运行的,因为只需要一个阶段,但在越来越频繁的情况下,我们希望能够连续运行所有三个阶段.
第一个和第二个依赖于您可以提前定义的参数,但第三个需要从第二个作业生成的参数(在job_two运行之前其结构未知的文件名).
我已经建立了umbrella,每个工作都会调用以下内容.在这种情况下,PARAM1填充是因为伞运行为"使用参数构建".
build job: 'job_one', parameters: [[$class: 'StringParameterValue', name: 'PARAM1', value: "$PARAM1"]]
Run Code Online (Sandbox Code Playgroud)
所有罚款和花花公子,然后我就可以用PARAM1在job_one就好了.
因为job_three我需要参数filename.这是job_two由于job_three不知道job_two正在做什么而在我内部生成,因此我无法访问.
在一个理想的世界中,我只需要将job_two传递filename给伞形工作,这将把它反馈给job_three.因此,如何将生成的filename备份传递给伞形工作?
我正在想象一个像这样的最终剧本;
node('on-demand-t2small'){
stage ('Build 1') {
build job: 'job_one', parameters: [[$class: 'StringParameterValue', name: 'PARAM1', value: "$PARMA1"]]
}
stage ('Build 2') {
build job: 'job_two', parameters: [[$class: 'StringParameterValue', name: 'PARAM2', value: "$PARMA2"]]
//somehow get …Run Code Online (Sandbox Code Playgroud) 我使用什么类来设置mat-slide-toggle的焦点状态的样式?
根据我在浏览器中通过Inspect所知道的,可能是类似的东西,::ng-deep .mat-ripple-element .mat-slide-toggle-persistent-ripple但是那不起作用。我尝试了几种变体,ripple但即使我朝着正确的方向看,也似乎找不到合适的变体。
我想要的是重新着色和缩小下面的粉红色圆圈的直径,我只是不知道如何为SASS选择它。
HTML:
<mat-slide-toggle (change)="onChange($event)">{{ variable-here }}</mat-slide-toggle>
Run Code Online (Sandbox Code Playgroud) 我是 Python 的新手。
我使用腻子来管理一些服务器。我想使用Python在每个服务器上创建一个Excel文件,为此我想如果我可以使用一些命令ssh ip "python abc.py"来创建文件。可以编写一个 bash 脚本来管理所有服务器。这是我遇到的麻烦:
服务器不能使用互联网。
并且不允许使用任何第三方库。当安装了 linux(redhat 6.5) 时,python 中有没有可以立即创建 Excel 的库?请帮帮我,谢谢。
我正在构建一个更大的 AWS CLI 工作,但其中一个构建块让我感到困惑;
如何获取当前正在运行的每个 AWS Cloudformation 堆栈的名称列表?
我可以使用以下内容很好地列出堆栈,但我无法获得将其与堆栈名称配对的查询。
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE --output text
Run Code Online (Sandbox Code Playgroud)
我可以在 bash 中减少结果表,但如果存在更优雅的 aws 解决方案,我会喜欢。