在jenkins声明性管道中使用If语句和shell命令

在jenkins声明性管道中使用If语句和shell命令,shell,if-statement,jenkins,amazon-cloudformation,multibranch-pipeline,Shell,If Statement,Jenkins,Amazon Cloudformation,Multibranch Pipeline,我正在将aws云计算整合到我的詹金斯管道中。我要执行一个命令 $ aws cloudformation describe-stacks --stack-name dev-nics-proxyservlet-svc --region us-west-2 命令来查看是否有一个带有我要查找的名称的堆栈。如果命令发现堆栈存在,我想删除堆栈: $ aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc aws clo

我正在将aws云计算整合到我的詹金斯管道中。我要执行一个命令

$ aws cloudformation describe-stacks --stack-name dev-nics-proxyservlet-svc --region us-west-2
命令来查看是否有一个带有我要查找的名称的堆栈。如果命令发现堆栈存在,我想删除堆栈:

$ aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc
aws cloudformation create-stack --stack-name dev-nics-proxyservlet-svc --region us-west-2 --template-body file://dev-nics-proxyservlet-cluster.yml --parameters file://dev-nics-proxyservlet-svc-param.json --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM"
但是如果堆栈不存在,我想创建堆栈:

$ aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc
aws cloudformation create-stack --stack-name dev-nics-proxyservlet-svc --region us-west-2 --template-body file://dev-nics-proxyservlet-cluster.yml --parameters file://dev-nics-proxyservlet-svc-param.json --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM"
如何在声明性多分支jenkins管道中编写这个shell命令?感谢您的帮助。
谢谢

我认为应该采取以下措施:

if aws cloudformation describe-stacks --stack-name dev-nics-proxyservlet-svc --region us-west-2 &>/dev/null 
then
    aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc
else
    aws cloudformation create-stack --stack-name dev-nics-proxyservlet-svc --region us-west-2 --template-body file://dev-nics-proxyservlet-cluster.yml --parameters file://dev-nics-proxyservlet-svc-param.json --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM"
fi

if
通过勾选
aws cloudformation描述堆栈的退出代码来工作。如果它是0,那么堆栈存在,如果不是0,那么它就不存在。

这应该在
bash
中?我想是吗?不确定在groovyOk中是否有这样做的方法。您可以在bash中查看我的答案。谢谢!快速提问将响应转发到&>/dev/null如何为我提供退出代码?@giturr14 Hi。它没有,它只是使输出更干净。如果需要,可以将其删除。顺便说一句,如果我的回答是有益的,它的接受将不胜感激。