当前位置: 首页 > 面试题库 >

如何让Jenkins 2.0在与结帐相同的目录中执行sh命令?

吴弘壮
2023-03-14
问题内容

这是我的Jenkins 2.x管道:

node ('master'){
    stage 'Checkout'
    checkout scm
    stage "Build Pex"
    sh('build.sh')
}

当我运行此管道时,签出将代码按预期方式放入工作区中,但是与其期望不在工作区/中找到脚本(它确实在那里!),而是在一个不相关的目录中查找:workspace
@ tmp / durable-d812f509。

Entering stage Build Pex
Proceeding
[Pipeline] sh
[workspace] Running shell script
+ build.sh
/home/conmonsysdev/deployments/jenkins_ci_2016_interns/jenkins_home/jobs/pex/branches/master/workspace@tmp/durable-d812f509/script.sh: line 2: build.sh: command not found

如何修改此Jenkinsfile,以便在与检出项目源代码的目录完全相同的目录中执行build.sh?


问题答案:

您可以将动作括起来dir

checkout scm
stage "Build Pex"
dir ('<your new directory>') { 
    sh('./build.sh')
}
... or ..
checkout scm
stage "Build Pex"
sh(""" <path to your new directory>/build.sh""")

...

<your new directory>是您实际目录的占位符。默认情况下,它是工作空间的相对路径。如果您确定代理中存在绝对路径,则可以定义绝对路径。



 类似资料:
  • 我有一个gradle多项目构建,每个子项目都在单独的git存储库中。在根项目的build.gradle,我试图为所有子项目定义一个任务,它将为每个项目执行一些git命令。但是,任务的工作目录始终是根项目的工作目录。 如何根据当前执行任务的子项目更改workingDir?

  • 我写了一个pom.xml来编译目录"D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\java\com\sample"中的java文件。 现在,我必须 jar 目录中的所有文件“D:\Windchill_Market\ERP 连接器\源代码\Build\src1”。 在我的pom.xml中: 我可以生成类文件。但我无法

  • 我正在编写一个shell脚本,在基于Alpine的docker映像上运行。它的shell是。 我还有别的办法吗? 我的问题不是“和有什么区别”。我的问题是:如何完成在命令的输出上运行函数的任务。

  • 注意2:在Jenkins/Configuration/under shell中,我提到了C:\cygwin\bin\mintty.exe 下面是输出 $C:\cygwin\bin\cygpath-w C:\cygwin\bin\mintty.exe[workspace]$C:\cygwin\bin\mintty.exe-xe D:\539707\tomcat-7.0.12\temp\hudson4

  • 我有一个用于发送GCM推送通知的后端,它使用在我的谷歌帐户下创建的API-project(sender_id)。它与我的谷歌Play商店帐户下发布的应用程序(与API-project相同的谷歌帐户)一起工作。 这可能吗?他的Google Play Store账户下的应用程序可以使用与Google Play Store谷歌账户不同的谷歌账户创建的sender_id(API-project)吗? 如果

  • 本文向大家介绍linux中目录与路径常见相关命令,包括了linux中目录与路径常见相关命令的使用技巧和注意事项,需要的朋友参考一下 linux中目录与路径常用命令 相对路径与绝对路径     绝对路径:路径的学法一定由根目录/写起。如/user/share/doc。     相对路径:目录不由/写起。如/user/share/doc要切换到/user/share/man时可以写为“cd  ../m