首页 > 解决方案 > 当我从其他管道运行其管道时,Serverspec 测试失败

问题描述

当我运行 CI 管道时,我在 jenkins 中运行 3 个管道(CI、CD、CDP),最后阶段是激活管道 CD(持续部署)的触发器,这会APP_VERSION从 CI(持续集成)PIPE 接收参数并部署一个带有packerand run的实例SERVERSPEC TEST,但serverspec测试失败。

在此处输入图像描述

但演示应用程序是通过 salstack 安装的

图 2

奇怪的是当我运行 CD 并APP_VERSION手动传递参数这个 WORK !

这是管道 CI 的最后阶段

stage "Trigger downstream"
    echo 'parametro'
    def versionApp = sh returnStdout: true, script:"echo \$(git rev-parse --short HEAD) "
    build job: "demo-pipeCD", parameters: [[$class: "StringParameterValue", name: "APP_VERSION", value: "${versionApp}"]], wait: false
}

我已将其传递给 serverspecsbin PATH并且无法正常工作。

编辑:我将代码添加到测试中。

enter code here

require 'spec_helper'

versionFile = open('/tmp/APP_VERSION')
appVersion = versionFile.read.chomp

describe package("demo-app-#{appVersion}") do
it { should be_installed }
end

另外,我添加了工作管道

#!groovy

node {

step([$class: 'WsCleanup'])

stage "Checkout Git repo"
checkout scm

stage "Checkout additional repos"
dir("pipeCD") {
  git "https://git-codecommit.us-east- 
 1.amazonaws.com/v1/repos/pipeCD"
}

stage "Run Packer"
sh "echo $APP_VERSION"
sh "\$(export PATH=/usr/bin:/root/bin:/usr/local/bin:/sbin)"
sh "/opt/packer validate -var=\"appVersion=$APP_VERSION\" -var- 
file=packer/demo-app_vars.json packer/demo-app.json"
sh "/opt/packer build -machine-readable - 
var=\"appVersion=$APP_VERSION\" -var-file=packer/demo-app_vars.json 
packer/demo-app.json | tee packer/packer.log"

REPEAT .. 作业管道中的参数 APP_VERSION 是正确的,并且在执行测试之前安装了演示应用程序。

标签: amazon-web-servicesjenkinssalt-stackpackerserverspec

解决方案


推荐阅读