jenkins pipline脚本 获取git分支

必须先禁用脚本安全性,参考文章:https://www.cnblogs.com/xiao987334176/p/18365397

点击Manage Jenkins-->Script Console

输入以下脚本:

// 定义Git命令
def cmd = "git ls-remote --heads https://oauth2:xxxxxx@xx.gitlab.com/xx.git"
  
// 执行命令并获取输出
def proc = cmd.execute()
proc.waitFor() // 等待命令执行完成
  
// 从执行结果中获取标准输出文本
def text = proc.text
//println text
  
// 将输出文本按行分割,并提取分支名
def branches = text.readLines().collect { line ->
  //println line
  def parts = line.tokenize("\t")
  //println parts
  def branch = parts.last().replaceAll("refs/heads/", "")
  //println branch
}
  
// 输出分支列表
//println branches
  
// 如果需要转换为List数据结构,可以使用toList()方法
def branchList = branches.toList()
  
// 输出List
println branchList

注意:oauth2是固定的,后面的xxxx是授权的token

执行有输出分支,就表示成功了

### Jenkins Pipeline 中定义和使用环境变量 在 Jenkins Pipeline 中,可以通过多种方式来定义和使用环境变量。以下是几种常见的方法: #### 方法一:通过 `environment` 块定义全局环境变量 可以在 Pipeline 的顶层或者某个特定阶段中使用 `environment` 关键字来声明环境变量。这些变量在整个 Pipeline 或者指定的阶段范围内可用。 ```groovy pipeline { agent any environment { APP_NAME = 'my-application' BUILD_ENV = 'production' // 可以设置默认值 } stages { stage('Build') { steps { echo "Building ${APP_NAME} in ${BUILD_ENV}" } } } } ``` 上述代码片段展示了如何在一个 Declarative Pipeline 中定义两个环境变量 `APP_NAME` 和 `BUILD_ENV` 并在后续步骤中调用它们[^1]。 --- #### 方法二:动态计算环境变量 如果需要根据某些逻辑动态生成环境变量,则可以利用 Groovy 脚本语法完成此操作。 ```groovy pipeline { agent any environment { CURRENT_TIME = """${sh(returnStdout: true, script: 'date +%Y%m%d%H%M%S').trim()}""" } stages { stage('Log Time') { steps { echo "Current time is ${CURRENT_TIME}" } } } } ``` 在此例子中,`${sh(...)}` 部分执行了一个 Shell 命令并将其输出作为环境变量 `CURRENT_TIME` 的值[^3]。 --- #### 方法三:参数化构建中的环境变量 当希望用户能够自定义一些输入时,可以结合 `parameters` 来实现可配置的环境变量。 ```groovy pipeline { agent any parameters { string(name: 'BRANCH', defaultValue: 'main', description: 'Which branch to build?') } environment { BRANCH_NAME = "${params.BRANCH}" // 将参数赋给环境变量 } stages { stage('Checkout Code') { steps { git branch: "${env.BRANCH_NAME}", url: 'https://github.com/example/repo.git' } } } } ``` 这段脚本允许开发者通过界面传递分支名称,并自动应用到 Git 检出过程中[^2]。 --- #### 方法四:直接访问系统级或内置环境变量 除了手动定义外,还可以直接读取由 Jenkins 提供的标准环境变量(例如 `${NODE_NAME}`, `${JOB_NAME}` 等),无需额外声明即可随时引用。 ```groovy pipeline { agent any stages { stage('Display Info') { steps { echo "Running on node: ${NODE_NAME}, Job name: ${JOB_NAME}" } } } } ``` 以上实例说明了即使未显式设定任何新的变量也能轻松获取运行上下文中已存在的信息[^4]。 --- ### 总结 综上所述,在 Jenkins Pipelines 内部支持灵活多样的机制用于管理各类形式下的环境变量需求;无论是静态初始化还是依据外部条件实时调整都具备相应解决方案可供选用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值