Jenkins groovy 递归得到文件夹下的文件列表

Jenkins pipeline groovy不能使用eachFileRecurse方法,所以只能使用shell帮忙了。/path和*.txt为可替换参数。

 

files=sh(returnStdout: true, script: 'find /path -name "*.txt"')

 

    

### Jenkins 中高级子模块的配置与用法 Jenkins 是一种流行的持续集成工具,支持复杂的项目构建流程以及多种插件扩展功能。对于涉及多个 Git 子模块的复杂项目,Jenkins 提供了 **Advanced Sub-modules Configuration** 功能来满足更精细的需求。 #### 一、Git 插件中的高级子模块选项 在 Jenkins 的 Job 配置界面中,可以通过以下路径访问到高级子模块设置: - 进入特定 Job 的配置页面; - 找到源码管理部分并选择 `Git` 或其他版本控制系统; - 展开 **Additional Behaviours** 下拉菜单; - 添加行为项:`Check out to specific local branch` 和/或 `Advanced sub-modules behaviours`[^1]。 这些选项允许用户定义如何处理项目的子模块依赖关系,例如是否递归检出子模块及其分支策略等。 #### 二、具体参数解释 以下是几个重要的高级子模块配置参数: 1. **Recursively update submodules**: 启用此选项后,在每次执行构建操作时都会自动更新所有的嵌套层次上的子模块至最新提交记录状态。这对于保持整个代码库同步至关重要。 2. **Use credential specified above for submodule processing (if any)**: 如果主仓库和其子模块分别位于不同的远程服务器上,则可能需要提供相同的或者独立的身份验证凭据用于克隆过程。启用该标志可以确保使用一致的安全认证方式完成所有必要的文件获取工作。 3. **Timeout for clone and fetch processes (in minutes)**: 设置超时期限有助于防止因网络延迟等原因造成无限期等待的情况发生。合理调整这一数值能够提高系统的稳定性与效率。 4. **Tracking submodules' remote branches instead of their fixed commits**: 默认情况下,当初始化一个新的本地副本时,会固定指向某个具体的 commit ID 而不是跟踪远端最新的改动情况。如果希望实时反映上游的变化趋势,可以选择此项让子模块始终追随指定名称对应的 HEAD 版本号变化。 #### 三、实际应用案例 下面展示了一个简单的 Pipeline Script 示例,演示如何通过声明式语法实现上述提到的一些特性: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git( url: 'https://github.com/example/repo.git', branch: 'main', extensions: [ [$class: 'CloneOption', timeout: 60], [$class: 'SubmoduleOption', recursiveSubmodules: true, trackingSubmodules: true] ] ) } } stage('Build') { steps { echo "Building..." } } } } ``` 在此脚本片段里,我们不仅指定了目标存储位置 URL 及期望切换的目标分支名(main),还额外引入两个关键性的扩展组件——分别是控制整体 Clone 行为的时间限制器(`CloneOption`);以及负责协调各层级子模组运作状况的核心逻辑单元(`SubmoduleOption`)[^1]。 #### 四、注意事项 尽管利用好 Advanced Sub-module Configurations 对于大型分布式协作开发环境下的自动化流水线建设意义非凡,但也需要注意潜在风险因素的存在。比如频繁变更子模块链接地址可能导致历史数据丢失等问题的发生概率增加。因此建议团队成员之间加强沟通交流频率的同时也要定期备份重要资产以防万一。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值