Сбой теста Serverspec, когда я запускаю его конвейер из другого конвейера - PullRequest
0 голосов
/ 21 октября 2019

Я запускаю 3 конвейера в jenkins (CI, CD, CDP), когда я запускаю канал CI, последний этап - триггер для активации CD канала (Continuous Deployment), который получает параметр APP_VERSION от CI (Непрерывная интеграция) PIPE и разверните экземпляр с packer и запустите SERVERSPEC TEST, но тест serverspec не прошел.

enter image description here

, но демо-версияприложение устанавливается через salstack

Image 2

Странно, когда я запускаю CD и передаю параметр APP_VERSION вручную, это РАБОТАЕТ !!

это последний этап для конвейера 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
}

Я перешел на серверную спецификацию sbin 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 в конвейере заданий является правым, и приложение демо-приложения устанавливается перед выполнением теста.

...