当前位置: 首页 > 知识库问答 >
问题:

如何进入特定目录并在 jenkins 管道中运行该目录中的命令

季俭
2023-03-14

我正在尝试在jenkins管道中运行gradle命令,为此我应该cd

 stage('build & SonarQube Scan') {
    withSonarQubeEnv('sonarhost') {
      sh 'cd  $WORKSPACE/sonarqube-scanner-gradle/gradle-basic'
      sh 'echo ${PWD}'
      sh 'gradle tasks --all'
      sh 'gradle sonarqube --debug'
    } 
  }

但是CD不起作用,我尝试了管道文档中建议的dir步骤,但我想在$WORKSPACE文件夹中使用CD。

我该如何解决这个问题?


共有1个答案

施俊哲
2023-03-14

詹金斯在每个命令后重置目录。因此,在第一个 sh 之后,它会返回到上一个位置。dir 命令是正确的方法,但应按如下方式使用:

dir('') {
}

类似于您与索纳夸倍德国一起使用的方式

或者,您可以简单地链接所有命令

sh 'cd $WORKSPACE/sonarqube-scanner-gradle/gradle-basic & echo ${PWD} & ...'

但不建议这样做。由于这一切都将在同一个命令中,因此它将正常运行。

 类似资料:
  • 问题内容: 我是第一次配置Jenkins,到目前为止一直是它的用户。 我阅读了文档,了解了“ $ WORKSPACE”在 从属服务器 上的含义。 我有一个误解, 默认情况下 ,Jenkins Slave上的作业在工作区目录中每个作业的唯一目录中运行。似乎并非如此。 如何为每个作业运行分配唯一目录?作业完成后,詹金斯会自动清除此作业运行目录吗? 问题答案: 默认情况下,jenkins从运行;这里在节

  • 问题内容: 我正在编写一个PHP脚本,该脚本将一系列生成的文件(使用)下载到一个目录中,然后使用该命令将其压缩。 下载可以完美运行,并且大多数情况下都可以压缩。我运行命令: 它会生成一个包含所有下载文件的zip文件,但是在到达目录之前它包含完整目录。 我可能只是从zip命令中丢失了一个标志或一些小标志,但是如何将其用作根目录? 问题答案: 我不认为zip可以这样做。我认为唯一的方法是: (反斜杠只

  • 问题内容: 对“ svn”样式很抱歉-我们正在从SVN迁移到GIT(包括我们的CI Jenkins环境)。 我们需要的是使Jenkins能够将GIT项目(存储库?)检出(或应该说克隆?)到特定目录中。我们已经尝试了一些refspecs魔术,但是了解和成功使用它并不太明显。 此外,如果在同一个Jenkins项目中,我们需要将几个私有GitHub存储库检出到项目根目录下的几个单独的目录中,我们该怎么做

  • 我从特定目录下的Stackoverflow使用通配符子域获取源代码 原始代码: 它可以正常工作,但上面的代码指向根目录。我希望所有子域都指向我的“公文包”目录中的目录,所以我尝试修改自己的代码 修改后(添加"/投资组合"): 但它给了我“500-内部服务器错误”。。。为什么?有人能纠正我的密码吗? 对我的英语表示感谢和歉意。

  • null 1)结果:结果 应为:已创建串联报表。实际:输出为空报表: /var/lib/jenkins/tools/ru.yandex.qatools.allure.jenkins.tools.allurecommandlineInstallation/allure/bin/allureGenerate-c-o/var/lib/jenkins/jobs/jobname/workspace/allu

  • 我有一个名为multibranch test的github repo,它有两个子目录Project1和Project2。 PS C:\Repos\multi-branch测试 每个子目录都有一个Jenkinsfile和该项目的代码。 在Jenkins中,我有两个多分支管道作业——一个用于Project1,一个用于Project2。在Project1的配置中,如果在Project2的子目录中推送了提