从Jenkins远程签入GitLab

从Jenkins远程签入GitLab,git,jenkins,gitlab,checkin,Git,Jenkins,Gitlab,Checkin,要求:我有一个Java项目,它读取excel并在验证后更新相同的excel。在构建运行时,这一切都会发生。现在,我必须使用GitLab和Jenkins来完成它。我的代码在GitLab上,我已经在它上面配置了webhook来运行构建 问题:构建完成后,excel在Jenkins workspace中得到更新,但我也想将其推送到GitLab。若我从shell直接推送,它总是在循环中运行。因此,我不打算为git命令编写完美的shell。你能帮我编辑一下吗 我试着将git命令放在不同的条件下,但没有任何

要求:我有一个Java项目,它读取excel并在验证后更新相同的excel。在构建运行时,这一切都会发生。现在,我必须使用GitLab和Jenkins来完成它。我的代码在GitLab上,我已经在它上面配置了webhook来运行构建

问题:构建完成后,excel在Jenkins workspace中得到更新,但我也想将其推送到GitLab。若我从shell直接推送,它总是在循环中运行。因此,我不打算为git命令编写完美的shell。你能帮我编辑一下吗

我试着将git命令放在不同的条件下,但没有任何帮助。下面是我的壳

#/bin/bash+x
回显=============================开始作业=========================
git config user.name“Tarun”
git config user.email tarun。verma2710@gmail.com
state=`git status`
回显*******状态开始*********
echo${state}
回显*******状态结束*********
git拉源主机
切换到主分支
git添加。
git提交-m“Jenkins签入”
如果[${state}==*“提交时未添加任何更改”*];然后
回显“不存在更改”
#git拉源主机
其他的
回应“当前的变化”
git push-u——强制原点主控
fi
回显==========================正在关闭作业==========================
实际产量:

============================开始作业=========================
2019-10-01 15:20:59信息com.zaxxer.hikari.HikariDataSource-hikaripol-1-启动关机。。。
*******状态开始*********
#头部在a4c555f处分离#未提交的更改:#(使用“git add…”更新将提交的内容)#(使用“git checkout…”放弃工作目录中的更改)#修改:spring boot automation tool/excels/QuickActionImplExcel.xlsx#未添加要提交的更改(使用“git add”和/或“git commit-a”)
*******状态结束*********
2019-10-01 15:20:59信息com.zaxxer.hikari.HikariDataSource-hikaripol-1-关闭完成。
来自gitlab.corp.amdocs.com:TARUNVE/crm bpt自动化工具
*分支主控->取头
已经是最新的了。
错误:签出将覆盖您对以下文件的本地更改:
spring引导自动化工具/excels/QuickActionImplExcel.xlsx
请在切换分支之前提交或隐藏更改。
流产
[分离头85e27cd]詹金斯登记
1个文件已更改,0个插入(+),0个删除(-)
重写spring启动自动化工具/excels/QuickActionImplExcel.xlsx(99%)
变化不存在
============================正在关闭作业==========================

预期输出:我希望顺利签入,一旦构建完成,它也会在GitLab中更新。而且,只有在Excel中存在更改时,才应该对GitLab进行签入。

您的if语句似乎被颠倒了。
*“提交时未添加任何更改”*
表示存储库中存在更改。请注意,在对存储库执行操作之前,请先检查状态。我将通过反转if语句来解决这个问题,更新字符串比较以检测预期的文件名,并仅在检测到更改时执行git操作

#!/bin/bash +x
state=$(git status)

if [[ ${state} == *"modified:"*"QuickActionImplExcel.xlsx"* ]]; then
    echo "changes present"
    git add .
    git commit -m "Jenkins Checkin"
    git push -u --force origin master
else
    echo "changes not present"
fi