我正在使用 jenkins 创建 CICD 工作流程,并且我有一个正在 grep 的文件,其格式如下:
api
qa0=
qa1=
qa3=
qa4=master
qa5=master
feasibility-service
qa0=
qa1=master1
qa3=cloud-config
qa4=
qa5=OTHERBUILD-112.12.3
qa123project-TBH
qa0=master
qa1=
qa3=
qa4=ehhrelease1.2333.1
qa5=
到目前为止,我的代码 grep 整个文件,匹配分支名称,然后提取它需要指向的 QA 环境:
if grep "$MAIN_DIR" config && grep $BRANCH_NAME config
then
echo "Checking if Git Project and Branch Exist, will deploy onto environment specified"
WORD=$(grep $BRANCH_NAME config)
INITIAL=${WORD::3}
echo GITENV=$INITIAL > $PROPS
这给我带来了问题,因为如果正在构建的项目是针对 api 的,而正在构建的分支是针对云配置的,那么它应该会失败,但相反,它会选择可行性服务的环境,而实际上它应该失败。
如何将其限制为仅属于分支名称(例如 api)下的列表?
与 api 匹配的项目的输出应该仅为:
api
qa0=
qa1=
qa3=
qa4=master
qa5=master
与 qa123project-TBH 完全匹配的项目的输出应该仅为:
qa123project-TBH
qa0=master
qa1=
qa3=
qa4=ehhrelease1.2333.1
qa5=