一. 简述:
Jenkins Pipeline 是一种持续集成和持续交付(CI/CD)工具,它允许用户通过代码定义构建、测试和部署流程。
二. 关于jenkinsfile:
1. Sections部分:
Pipeline里的Sections通常包含一个或多个Directives或 Steps:
a). agent:
指定整个Pipeline或特定阶段将在Jenkins环境中执行的节点位置,具体取决于该agent 部分的配置。该部分必须在pipeline块内的顶层定义 ,但在stage中是可以使用的。
#agent可选项:
1). any:任何可用agent上执行。
2). none:不会为整个Pipeline运行分配全局agent ,每个stage部分将需要包含其自己的agent部分
3). label: 使用提供的label标签,在Jenkins环境中可用的代理上执行Pipeline或stage(agent { label 'my-defined-label' })
4). node: agent { node { label 'labelName' } },等同于 agent { label 'labelName' },但node允许其他选项
5). docker:执行Pipeline或stage时会动态供应一个docker节点去接受Docker-based的Pipelines。
6). dockerfile: 使用从Dockerfile源存储库中包含的容器来构建执行Pipeline或stage
eg:
pipeline {
agent none
stages {
stage('Example Build') {
agent { docker 'maven:3-alpine' }
steps {
echo 'Hello, Maven'
sh 'mvn --version'
}
}
stage('Example Test') {
agent { docker 'openjdk:8-jre' }
steps {
echo 'Hello, JDK'
sh 'java -version'
}
}
}
}
常用选项:
#label : 标签,适用于node,dockr anddockerfile时,并且node是必须的
#customWorkspace: 自定workspace路径
#reuseNode:一个布尔值,默认为false。如果为true,则在同一工作空间中,。只适用于docker和dockerfile,并且仅在 individual stage中使用agent才有效
eg:
agent {
node {
label 'my-defined-label'
customWorkspace '/some/other/path'
}
}
b). POST:
定义将在Pipeline运行或阶段结束时运行的操作。部分 always,changed,failure,success,unstable,和aborted。这些块允许在Pipeline运行或

最低0.47元/天 解锁文章
1438

被折叠的 条评论
为什么被折叠?



