У меня есть конвейер для сборки моего приложения для Android.На некоторых этапах у меня есть сценарии оболочки.когда я запускаю этапы один за другим (комментируя другие), все работает нормально, но когда я запускаю их все вместе, я вижу странное поведение.
Кажется, что сценарии оболочки выполняются в параллельно !!
вот мой jenkinsfile:
pipeline{
agent any
stages{
stage("Clean"){
agent{
node{
label 'master'
customWorkspace getMainDirectory()
}
}
steps{
sh """#!/bin/bash
rm -rf Corona
rm -rf native-corona-android
cd ..
cp -a TemplateWorkspace/. ${getCoronaBranch()}-${getNativeBrach()}
"""
}
}
stage("pull native repo"){
agent{
node{
label 'master'
customWorkspace getNativeProjectPath()
}
}
steps{
echo "pulling native"
git(
url: nativeRepositoryAddress,
credentialsId: credentialsId,
branch: getNativeBrach()
)
echo "pulling done"
}
}
stage("pull corona repo"){
agent{
node{
label 'master'
customWorkspace getCoronaProjectPath()
}
}
steps{
echo "pulling corona"
git(
url: coronaRepositoryAddress,
credentialsId: credentialsId,
branch: getCoronaBranch()
)
echo "pulling done"
}
}
stage("build"){
environment {
docDir = getMainDirectory()
ANDROID_HOME = getAndroidSDKLocation()
}
agent{
node{
label 'master'
customWorkspace getNativeProjectPath()
}
}
steps{
sh """#!/bin/bash
./gradlew clean
./gradlew changeFiles --stacktrace --no-daemon
./gradlew assembleDebug --stacktrace --no-daemon
"""
}
}
stage("move build files"){
agent{
node{
label 'master'
customWorkspace getGradleBuildLocation()
}
}
steps{
sh """#!/bin/bash
yes | cp -rf * ../../../../JenkinsBuilds/${getOutputFolder()}/
"""
}
}
}
}
Я просто хочу выполнить шаги синхронно (и, конечно, сценарии оболочки), В чем моя проблема?
ЗдесьВот что я вижу:
На шаге «Очистка» папки удаляются, а свежая копия папок «Шаблон» копируется в рабочий каталог.Шаги «вытащить родное репо» и «вытащить коронное репо» выполняют работу, которую они должны делать.но на шаге "build" я вижу, что часть файлов "native-corona-android" пропала, а скрипт "gradlew" удален.Я также видел ситуации, когда вся папка "native-corona-android" удалялась.Тогда я подумал, что сценарий в шаге «Очистить» вызывается снова.
Спасибо