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