如何在Jenkinsfile中执行Shell脚本?

myss37ts  于 2023-02-03  发布在  Jenkins
关注(0)|答案(4)|浏览(498)

我在/var/lib/jenkins中保存了一个名为urltest.sh的shell脚本文件,并从jenkins构建版本执行该文件。
当我执行构建时,它失败了。

The Environment Variables are - 
HOME -          /var/lib/jenkins ;
JENKINS_HOME -  /var/lib/jenkins

控制台输出如下:

Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/AutoScript
[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh
+ sh urltest.sh
sh: 0: Can't open urltest.sh
Build step 'Execute shell' marked build as failure
Finished: FAILURE

应该将shell脚本文件保存在哪里以便执行它?

fbcarpbf

fbcarpbf1#

根据这个问题的浏览量,看起来很多人都在访问这个问题,以了解如何设置一个执行shell脚本的作业。
以下是在Jenkins中执行shell脚本的步骤:

  • 在Jenkins的主页中,选择 * 新建项目 *。
  • 输入项目名称,如“my shell script job”,然后选择 Freestyle project。按 OK
  • 在配置页面的 Build 块中,单击 Add build step 下拉菜单,然后选择 Execute shell
  • 在文本区域你可以粘贴一个脚本或者指定如何运行一个现有的脚本。所以你可以说:
#!/bin/bash

echo "hello, today is $(date)" > /tmp/jenkins_test

或者只是

/path/to/your/script.sh
  • 单击“保存”。

现在,新创建的作业应该和其他作业一起出现在Jenkins的主页上。打开它,选择 Build now,看看它是否工作。一旦它完成了,从构建历史中选择特定的构建,阅读 *Console输出 *,看看是否一切都按预期发生了。
您可以在GitHub的Create a Jenkins shell script job文档中获得更多详细信息。

tyg4sfes

tyg4sfes2#

如果您看到错误消息,则会显示
在工作区/var/lib/jenkins/工作区/AutoScript中构建
根据您的评论,您已将www.example.com放入urltest.sh in
/变量/库/Jenkins
因此Jenkins无法找到该文件。在您的构建步骤中做这件事,它将工作

cd             # which will point to /var/lib/jenkins
./urltest.sh   # it will run your script

如果仍然失败,尝试chown文件,因为jenkin用户可能没有文件权限,但我认为如果您执行上述步骤,您将能够运行。

oogrdqng

oogrdqng3#

前面的答案都是正确的,但这里还有一种方法和一些提示:

选项#1转到Jenkins作业并搜索“add build step”,然后将脚本复制并粘贴到此处
选项#2转到Jenkins并再次执行相同的操作“添加构建步骤”,但这次将脚本的完全限定路径放在下面的示例中:./usr/某处/helloWorld.sh

第一节第一节第一节第一节第一次
注意事项/提示:

  • 环境变量,如果你的作业在同一时间运行,那么你需要担心并发问题。一个作业可能正在设置环境变量的值,而下一个作业可能会错误地使用该值或基于该值采取某些操作。
  • 确保所有路径都是完全限定的
  • 考虑记录/var/log或其他地方,这样您也可以在服务器上找到一些内容(可选)
  • 关于空间问题和权限的事情,耗尽空间和权限问题在linux环境中是很常见的
  • 当脚本失败时,发出警报并确保脚本/作业失败jenkin作业
3htmauhk

3htmauhk4#

Managed Script Plugin提供了一种管理用户脚本的简单方法,它还添加了一个构建步骤操作,允许您选择要执行的用户脚本。

相关问题