我正在尝试将Jenkinsfile
s从脚本管道转换为声明性管道。我在中有一个这样的块Jenkinsfile
:
ws("/path/to/dir") {
// do stuff
}
我不知道它到底能做什么,以及将其转换为声明性管道语法的正确方法是什么。
ws
分配一个新的工作区。您将使用它来确保其他任何因素都不会干扰磁盘上运行所附步骤的位置。
node
步骤那样繁重,因为node
这还将确保它由单独的执行程序运行。dir
步骤更多的隔离,因为这dir
将无法确保在文件系统上的隔离位置ws
。您可以按照与脚本相同的方式在声明性管道中使用它:
pipeline {
agent { label 'docker' }
stages {
stage('hot_stage') {
steps {
sh 'pwd'
ws('/tmp/hey') {
sh 'pwd'
}
}
}
}
}
产生输出:
+ pwd
/opt/jenkins/workspace/tool_jenkins2-test_master-R4LIKJR63O6POQ3PHZRAKWWWGZZEQIVXVDTM2ZWZEBAWE3XKO6CQ
[Pipeline] ws
Running in /tmp/hey
[Pipeline] {
[Pipeline] sh
[hey] Running shell script
+ pwd
/tmp/hey
参考资料:
问题内容: 我正在尝试使用詹金斯。但是,当我阅读声明性管道语法时,我对“代理”感到困惑(https://jenkins.io/doc/book/pipeline/syntax/#scripted- pipeline )。 代理商代表什么? 这是否意味着我可以设置管道运行时文件夹路径? 如何创建代理? 如何为代理商设置标签? 问题答案: 我能感觉到你:-D。答案如下: 代理程序部分指定整个管道或特定
有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。
问题内容: 我已经全局安装了gulp(npm install gulp -g)。但是我认为这是行不通的。当我在本地程序上进行gulp测试时,它工作正常。但是,当我在github(在Jenkins上)的同一个程序上进行gulp测试时,会出现以下错误。它不会识别gulp命令。有人能帮我吗?感谢詹金斯的错误: 但是在命令行中它运行良好。 问题答案: 为了知道您的gulp在哪里,您应该全局(对所有用户)将
问题内容: 问题 我正在尝试在Jenkins中构建应用程序,它在Github上的一个私有仓库中,还有一个私有子模块。 我可以通过设置凭据来在Jenkins中克隆私有存储库,但是Jenkins无法克隆子模块,这是构建失败的输出: 这就是我在詹金斯试图做的 试图将其他行为设置为“高级子模块行为”,但没有成功。 在使用phpunit运行测试之前,尝试设置一个新步骤: 试图在我的子模块的项目上设置一个gi
问题内容: 我有一个.Jar文件,它将在运行时将数据加载到数据库中。我已经计划通过詹金斯来担任这项工作。当我在詹金斯执行作业时,它将成功运行.JAR。但是,请说作业中是否存在空指针异常,并且该异常未成功完成。即便如此,詹金斯仍然说工作已经“通过”。如果作业执行过程中出现问题,如何使作业失败? 问题答案: @Corey的解决方案很好。而且,如果您不想编写JUnit测试并在Jenkins中提供支持,则
问题内容: 如何轻松地将Jenkins与qUnit集成?我将使用真正的浏览器(如firefox和chrome)运行测试。我的服务器在RedHat 6.1 Linux上运行。我想我都需要插件/库,但我仍然不知道如何使其工作。我第一次与Jenkins合作(在服务器端)。 //编辑: 如果有人也可以共享想法如何构建覆盖率报告,那将是很棒的。 提前致谢 :)。 问题答案: 说詹金斯和QUnit只是难题的一