jenkins-pipeline相关内容

GitLab CI-唯一内部版本号

GitLab配置项中是否有可用作内部版本号的唯一编号,就像我们在Jenkins中使用的一样。我开始了解变量“CI_PIPELINE_IID”,但是这个变量的问题是,它针对所有分支进行更新,并且每个分支都不存在这样的变量。 推荐答案 我们使用变量$CI_PIPELINE_IID解决了同样的问题,该变量定义为 当前管道的项目级IID(内部ID)。此ID仅在当前项目内唯一。 ,与 ..
发布时间:2022-02-23 15:36:29 其他开发

Jenkins 管道中的导出命令

如何在 Jenkins 管道中添加“导出"unix 命令?我有一个詹金斯的“舞台"和“步骤".导出命令的语法是什么.我需要使用 export 命令设置环境变量“PATH". 解决方案 你可以像这样更新$PATH: 管道{代理{标签“码头工人"}阶段{阶段(“构建"){脚步 {//JENKINSHOME 只是一个帮助可读性的名称withEnv(['PATH+JENKINSHOME=/hom ..
发布时间:2022-01-18 17:25:55 其他开发

Jenkins Pipeline 抛出 java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowRun 即使使用@NonCPS

代码相当简单,我只想要一个发布到 slack 的 rev-list.但是导致我出现问题的部分是当我实际上试图从 git 获取 rev-list 时. 问题代码 @NonCPSdef getRevisionList(currentCommit, lastSuccessfulCommit) {def 提交 = sh(脚本:“git rev-list $currentCommit $lastSu ..
发布时间:2022-01-18 17:25:49 其他开发

如何在 Jenkins 声明式管道中处理夜间构建

我的仓库中有一个带有 Jenkinsfile 的多分支管道,并且我能够拥有我的 CI 工作流程(构建和单元测试 -> 部署开发 -> 批准 -> 部署 QA -> 批准 -> 部署产品) 在每次提交时.我想做的是在第一阶段构建和夜间构建中添加 SonarQube 分析.单元测试.由于我的构建是由 Gitlab 触发的,因此我将管道触发器定义如下: 管道{...触发{gitlab(triggerO ..
发布时间:2022-01-18 17:25:43 其他开发

Jenkins Pipeline currentBuild.changeSets 并检索每个存储库的电子邮件

我有一个 Jenkins 管道作业,它检查三个存储库. 当构建失败时,根据失败的位置,我想向导致最后提交/更改的开发人员发送电子邮件. 我可以用这个来检索作者的全名: def changeSet = script.currentBuild.changeSets[0];设置作者 = [];如果(更改集!= null){for (changeSet.items 中的变化) {author ..
发布时间:2022-01-18 17:25:26 其他开发

权限被拒绝错误 - jenkins(shell脚本)

我正在使用 jenkinsfile 来测试我们的一个实例.为此,我创建了一个 bash 脚本.问题是詹金斯没有运行脚本的权限.知道如何解决这个问题吗? Jenkins 文件: stage("测试实例"){如果(terragruntAction == '应用' || terragruntAction == '测试'){回声“测试"sh '../check_services.sh'}} 输 ..
发布时间:2022-01-18 17:25:15 其他开发

Jenkins 声明性管道:仅为管道设置代理时,哪个工作区与阶段相关联?

这是一个声明性管道的示例,其中为管道设置了代理,但未在各个阶段设置: 管道{代理{节点{标签'linux'}}阶段{阶段(“结帐"){脚步 {结帐单片机}}阶段(“构建"){脚步 {sh“制作"}}}} 我发现的有关脚本化管道的文档清楚地表明,将在单个节点块中使用单个工作区,但可能会为多个节点块分配多个工作区,因此有必要在这些步骤之间进行存储,使用外部工作区如果您想确定步骤之间的工作区中的内容 ..
发布时间:2022-01-18 17:24:58 其他开发

如何在 Jenkinsfile 中获取 shell 脚本的输出?

在 Jenkinsfile Groovy 脚本阶段,假设我想发出一个输出字符串的行和列的 linux 命令,并且想要获取某一行的输出中的第 n 列.此类命令的一个示例是“ls -al".所以我这样做对吗? stage("获取目录大小") {sh returnStatus:true,脚本:'''LINE=`ls -al |grep some_dir`IFS="" 读取 -ra COLS ..
发布时间:2022-01-18 17:24:50 其他开发

Jenkins - 从文件系统而不是 SCM 加载全局管道库?

我在文档中找不到有关如何执行此操作的任何内容 - 有人有什么想法吗? 解决方案 目前看来不可能.但是您可以轻松地初始化本地 git 存储库并将其用作 SCM,而无需任何远程托管. 要初始化 git repo,请在共享库的根目录中使用以下命令(例如 C:\Users\Jenkins\pipeline-shared-library-test): git 初始化混帐添加.git commit ..
发布时间:2022-01-18 17:24:43 其他开发

Jenkins Pipeline 选择特定的分支

我有一个 Jenkins 流水线,我希望有一个用户输入来检查他们选择的特定分支.即如果我创建一个分支'foo'并提交它,我希望能够从菜单中构建该分支.由于有几个用户都在创建分支,我希望它在声明性管道中而不是 GUI 中.在下面显示的这个阶段,我希望在 Jenkins 轮询 git 以找出可用的分支之后,用户输入来检查分支.这可能吗? stage('Checkout') {checkout([$c ..
发布时间:2022-01-18 17:24:26 服务器开发

`env.BRANCH_NAME` 变为 `PR-1`

我们使用 Jenkins 管道和Github 多分支. 我在一个名为 feature/my1stfeature 的功能分支上工作.Jenkins 作业返回了正确的分支名称: println(env.BRANCH_NAME) 返回 feature/my1stfeature. 但是,当我在 Github 中创建第一个拉取请求时 println(env.BRANCH_NAME) ..
发布时间:2022-01-18 17:24:19 其他开发

詹金斯管道无法将代码签入git

在我的 jenkins 管道项目中,我可以很好地从 git 中签出代码...但是我们需要进行一些 git 签入,并且凭据显然没有被缓存. 阶段“结帐"git url:'git@bitbucket.org:myproj.git',分支:'master',credentialsId:'012ce21d-e920-44ee-b6f7-08df8ab41de0',变量:'CREDENTIALS'sh( ..
发布时间:2022-01-18 17:23:26 其他开发

Jenkins 管道构建如何确定工作区文件夹?

在 Jenkins 管道中,当在特定节点上运行构建时,会在该代理上分配一个工作区.我们不设置工作区路径,所以它是自动确定的.我知道,当同一个作业在同一个代理上同时运行时,工作区必须包含执行程序编号以隔离构建. 但是...工作区路径究竟是如何构建的? 我们的构建被分配给一个特定的节点(有 4 个执行器)并且被配置为不允许并发构建.通常是这样分配的: EXECUTOR_NUMBER=1工 ..
发布时间:2022-01-18 17:23:08 其他开发

Jenkins 管道:选择 nodejs 版本(+ python 版本)

我在 Jenkinsfile 中遇到了 Jenkins 管道问题.我的 Jenkins 实例上有 4 个不同的 nodeJs 版本.我想选择在我的管道中使用哪一个,但官方插件示例(https://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin) 根本不起作用. 我尝试了第一种方法,但失败了,因为 $PATH 被 tools 部分覆盖. 管 ..

Jenkinsfile when-branch 设置的模式评估是什么?

我正在尝试检测阶段内 when 语句上的分支模式. 像这样: stage('部署到登台') {代理标签:'some-node'当{分支“功能/*"}脚步 {sh './deploy_pr.sh'} } 如果我想要更复杂的模式怎么办? 我正在尝试检测诸如 feature/0.10.25 之类的东西,但以下模式不起作用: when { 分支'feature/[0-9]+.[0- ..
发布时间:2022-01-18 17:22:53 其他开发

如何在工作开始前清除 Jenkins 管道中的工作区

我需要在构建开始之前清除工作区.我尝试分阶段使用 cleanDir() ,但是在声明性管道中,首先发生签出,当带有 cleadDir 的阶段运行时,签出的代码也会被清除,这是不需要的.我们如何在声明式管道中签出之前清除工作区? 解决方案 使用你的 VCS 的方法,用 Git 运行 git clean -fdx ..
发布时间:2022-01-18 17:22:43 其他开发