跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [请教] 配置 Jenkins 使用的是 pipeline script from scm,如何获取这个仓库里面的 shell 脚本地址
未分類
31 8 月 2020

[请教] 配置 Jenkins 使用的是 pipeline script from scm,如何获取这个仓库里面的 shell 脚本地址

[请教] 配置 Jenkins 使用的是 pipeline script from scm,如何获取这个仓库里面的 shell 脚本地址

資深大佬 : lesteryou 1

前提

  1. 公司有很多项目,最近都打算配置 Jenkins 自动化,但是很多人对这不熟悉,我就计划 把这些 Jenkinsfile 统一管理,新建一个 git 仓库,不同的项目不同的路径去创建 Jenkinsfile,公共部分提取出来,方便维护。
  2. Jenkins 里面的 job 配置是 pipeline script from scm,然后选择对应的脚本路径。
  3. 实际运行也没什么问题,console 那边,是先拉取 Jenkinsfile 仓库到一个以 [email protected] 命名的路径,我需要执行的 shell 命令,以及一些需要引入模块的 groovy 文件也在里面。
  4. 在当前项目对应的 Jenkinsfile 里面通过 load,引入公共模块的 groovy 是没问题的。
 - lib  //类库  - pipeline      - module //模块       qywechat-notice    ...  - shell // shell 脚本      notice.sh  - src   // 各项目的 Jenkinsfile 文件  

问题

  1. 但是 我需要执行其中的 shell 命令的时候,无法执行了,我进到 Jenkins 服务器,发现 shell 文件的地址是在 [email protected] 下面,而 jenkins 的环境变量 env.WORKSPACE 是 project_name,而这路径也不能硬编码,写死,所以有没有什么方式可以获取到 shell 文件的真实路径。
大佬有話說 (3)

  • 資深大佬 : monsterxx03

    换个思路, 共享库里应该 export 一个 runScript 函数, 外部不要关心 script 具体路径.

    jenkins pipeline 有点坑的, 如果你的 shell script 要求必须在脚本同一级目录运行, 尝试用 dir() 切到 workspace 之外的路径行不通的, 会报权限错误

  • 主 資深大佬 : lesteryou

    @monsterxx03 你好,请问这个 `export 一个 runScript 函数`,不太理解,是定义个函数返回 shell 内容?您可以详细说下吗,谢谢了

  • 資深大佬 : monsterxx03

    @lesteryou 我有点想多了, 你的需求用 resources folder 就可以了 https://www.jenkins.io/doc/book/pipeline/shared-libraries/#loading-resources

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具