jenkins-pipline-agent使用,使构建能够在不同环境,不同容器中运行
Posted Sicc1107
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins-pipline-agent使用,使构建能够在不同环境,不同容器中运行相关的知识,希望对你有一定的参考价值。
jenkins agent
参考地址https://www.jenkins.io/doc/book/pipeline/syntax/
该agent部分指定整个Pipeline或特定阶段将在Jenkins环境中执行的位置,具体取决于该agent 部分的放置位置。该部分必须在pipeline块内的顶层定义 ,但阶段级使用是可选的。
简单来说,agent部分主要作用就是告诉Jenkins,选择那台节点机器去执行Pipeline代码。这个指令是必须要有的,也就在你顶层pipeline …的下一层,必须要有一个agent…,agent这个指令对应的多个可选参数,本篇文章会一一介绍。这里注意一点,在具体某一个stage …里面也可以使用agent指令。这种用法不多,一般我们在顶层使用agent,这样,接下来的全部stage都在一个agent机器下执行代码。
#参数1:any 作用:在任何可用的代理上执行Pipeline或stage
pipeline
agent any
parameters gitParameter branchFilter: 'origin/(.*)', defaultValue: 'dev', name: 'BRANCH', type: 'PT_BRANCH'
stages
stage("git clone")
steps
script
sh """
"""
stage("git clone")
steps
stage("git clone")
steps
参数2:none 当在pipeline块的顶层应用时,将不会为整个Pipeline运行分配全局代理,并且每个stage部分将需要包含其自己的agent部分。
pipeline
agent any
parameters gitParameter branchFilter: 'origin/(.*)', defaultValue: 'dev', name: 'BRANCH', type: 'PT_BRANCH'
stages
stage("git clone")
agent
label 'jenkins-git'
steps
script
sh """
"""
stage("git build")
agent
label 'jenkins-jdk'
steps
stage("deploy")
agent
label 'jenkins-sync'
steps
//参数3:label 作用:使用提供的标签在Jenkins环境中可用的代理机器上执行Pipeline或stage内执行。
pipeline
agent
label 'jenkins-dev'
//参数4:node 作用:和上面label功能类似,但是node运行其他选项,例如customWorkspace
pipeline
agent
node
label 'jenkins-agent-node1'
customWorkspace "$env.JOB_NAME/$env.BUILD_NUMBER"
//其实agent相关的还有两个可选参数,分别是docker和dockerfile
//第一种全部在一个节点和 容器内运行 在节点jenkins-dev 上运行 golang:1.17-alpine容器挂载目录
pipeline
agent
docker
label 'jenkins-dev'
image 'golang:1.17-alpine'
args "-v $SSH_KEY_PATH:$SSH_CREDENTIAL_PATH"
parameters gitParameter branchFilter: 'origin/(.*)', defaultValue: 'dev', name: 'BRANCH', type: 'PT_BRANCH'
stages
stage("git clone")
steps
script
sh """
"""
stage("git build")
agent
label 'jenkins-jdk'
steps
stage("deploy")
agent
label 'jenkins-sync'
steps
//使用多个容器
pipeline
agent none
stages
stage('git pull')
agent
docker image 'git:latest'
steps
sh 'git version'
stage('build')
agent
docker image 'node:7-alpine'
steps
sh 'node --version'
以上是关于jenkins-pipline-agent使用,使构建能够在不同环境,不同容器中运行的主要内容,如果未能解决你的问题,请参考以下文章
jenkins-pipline-agent使用,使构建能够在不同环境,不同容器中运行
使用Android Navigation Component,如何使actionBar透明并在单个Fragment中使布局全屏?