作为构建过程的一部分,我正在运行git commit作为执行shell步骤.但是,如果工作区中没有更改,Jenkins将无法进行构建.这是因为当没有提交更改时,git返回错误代码.我想要中止构建,或者只是在这种情况下将其标记为不稳定.有任何想法吗?
我正在努力使用Google App Engine.我想做的就是:
我正在按照教程的确切步骤进行操作.我现在已经尝了好几次了.该应用程序在Jenkins中构建良好(我设法让它运行),但部署失败.
+ gcloud --project=MyProject preview app deploy target/guestbook-1.0-SNAPSHOT.war
ERROR: File [/var/jenkins/workspace/MyProject/target/guestbook-1.0-SNAPSHOT.war] is not a valid deployable item.
ERROR: (gcloud.preview.app.deploy) Errors occurred while parsing the App Engine app configuration:
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
它在本地开发Web服务器上运行良好.MyProject是项目ID(我刚刚为示例更改了它).我究竟做错了什么.我的意思是我忘了做某事吗?我已经做了五年多的Java了,我无法理解为什么做这么基本的事情应该这么难.请帮我
来自詹金斯:
Started by user User Name
Building remotely on cloud-dev-java in workspace /var/jenkins/workspace/MyGuestbook
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://source.developers.google.com/p/MyProject # timeout=10 …Run Code Online (Sandbox Code Playgroud) 我正在通过Jenkins构建一个Qt GUI应用程序.我添加了3个构建步骤:
出于某种原因,运行测试可执行文件的shell任务在执行后停止.即使是简单的echo也不会追求.测试使用Google Test编写并输出xUnit XML文件,这些文件在构建后进行分析.一些测试启动了应用程序用户界面,因此我安装了jenkins xvnc插件以使它们运行.
构建任务如下:
建立
cd $WORKSPACE/projectfiles/QMake
sh createbin.sh
Run Code Online (Sandbox Code Playgroud)
测试
cd $WORKSPACE/bin
./Application --gtest_output=xml
Run Code Online (Sandbox Code Playgroud)
覆盖率报告
cd $WORKSPACE/projectfiles/QMake/out
gcovr -x -o coverage.xml
Run Code Online (Sandbox Code Playgroud)
现在,echo正确打印第一个构建任务echo的末尾,但是在第二个构建任务的末尾则没有.因此,即使Google Test输出可见,第三个构建任务也不会运行.我想也许问题是某些Google测试失败了,但是为什么脚本会因为测试失败而停止执行?
也许有人可以给我一个暗示第二个任务停止的原因.
编辑
控制台输出如下所示:
Updating svn://repo/ to revision '2012-11-15T06:43:15.228 -0800'
At revision 2053
no change for svn://repo/ since the previous build
Starting xvnc
[VG5] $ vncserver :10
New 'ubuntu:10 (jenkins)' desktop is ubuntu:10
Starting applications specified in /var/lib/jenkins/.vnc/xstartup
Log file is /var/lib/jenkins/.vnc/ubuntu:10.log
[VG5] $ /bin/sh -xe …Run Code Online (Sandbox Code Playgroud) 下面是在 Jenkins 中运行的三个 PowerShell 命令和构建结果。为什么会失败?哪个命令可能失败?我读过这篇文章:Execute Shell 如何/何时将 Jenkins 中的构建标记为失败?,却想不通。我不熟悉 MS 的东西。
命令 1:
& "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com" "$env:WORKSPACE\ETL\OnePnL.sln" /Build
Run Code Online (Sandbox Code Playgroud)
命令 2:
###########################
# Deploy SSIS package #
###########################
$csource ="$env:WORKSPACE\ETL\Project Type 0\bin\DEFAULT\OnePnL.ispac"
$cserver = "SSASDBDEV01"
$cdest = "/SSISDB/OnePnL/OnePnL"
echo $env:GIT_BRANCH
if ($env:GIT_BRANCH -like '*master*')
{
# Call IS Deployment Wizard
echo "Deploying SSIS package to $cdest on $cserver"
# "C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe" "/Silent /SourcePath:""$csource"" #/DestinationPath:""$cdest"" /DestinationServer:""$cserver""" -Wait
Start-Process "C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe" …Run Code Online (Sandbox Code Playgroud) 我有一个 python 脚本在 Jenkins 的构建阶段运行,位于执行 shell 区域。
问题是,如果脚本失败,我仍然认为构建成功。我确实检查过,python 使用了类似于 shell 命令返回代码的东西(用 $ 调用的那个?),尽管我不知道在哪里放置调用以在 python 脚本中触发“任何”失败返回代码
import sys
..... code here
....functions
sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)
我需要返回 sys.exit(-1),但是你把它放在 python 代码中的哪里?到目前为止,我只能使用 try 块来处理它,并且在异常部分我放置了 sys.exit(-1),但这添加了大量代码,因为我在脚本中有很多函数。
是否有一个我可以使用的全局位置来触发故障,以便 Jenkins 作业失败?
我正在通过Jenkins在Linux Shell上执行pkill命令。当进程不存在时,此命令将始终使构建失败。
sudo docker exec mycontainer sh -c 'pkill -f processToKill || true '
Run Code Online (Sandbox Code Playgroud)
为什么?即使pkill失败,如何使它成功?