我在此文件夹下有一个分支文件夹“功能集”,其中有多分支
我需要在Jenkinsfile中运行以下脚本,并附带条件:如果此构建从“功能集”文件夹下的任何分支(如“功能集/”)运行,然后运行脚本
脚本是:
sh“”“
if [ ${env.BRANCH_NAME} = "feature-set*" ]
then
echo ${env.BRANCH_NAME}
branchName='${env.BRANCH_NAME}' | cut -d'\\/' -f 2
echo \$branchName
npm install
ng build --aot --output-hashing none --sourcemap=false
fi
“”“
当前输出未满足以下条件:
答案 0 :(得分:0)
这似乎更多是在外壳方面。由于您打算在条件允许的情况下使用shell,因此以下内容对我有用。
Administrator1 @ XXXXXXXX: $如果[[[$ {BRANCH_NAME} =功能集*]];然后回显“成功”;科幻 成功
删除引号,并分别在开头和结尾处添加一个额外的“ []”。
附加的“ []”用作正则表达式
答案 1 :(得分:0)
我将主要使用Jenkins / Groovy语法进行重写,并且仅在需要时才使用shell。
根据您提供的信息,我认为您的env.BRANCH_NAME总是看起来像`feature-set /
// Echo first so we can see value if condition fails
echo(env.BRANCH_NAME)
// startsWith better than contains() based on current usecase
if ( (env.BRANCH_NAME).startsWith('feature-set') ) {
// Split branch string into list based on delimiter
List<String> parts = (env.BRANCH_NAME).tokenize('/')
/**
* Grab everything minus the first part
* This handles branches that include additional '/' characters
* e.g. 'feature-set/feat/my-feat'
*/
branchName = parts[1..-1].join('/')
echo(branchName)
sh('npm install && ng build --aot --output-hashing none --sourcemap=false')
}