前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins 中文社区技术交流微信群问题集之一

Jenkins 中文社区技术交流微信群问题集之一

作者头像
LinuxSuRen
发布2019-07-10 16:08:17
8960
发布2019-07-10 16:08:17
举报
文章被收录于专栏:JenkinsJenkins

申明:下文中的问题是群友发起的,回答则是由笔者收集整理的。

1. 同一流水线,如何做某个阶段定时执行代码扫描

这个需求的意思是存在一条流水线,流水线中的阶段为:构建阶段 --> 代码扫描阶段 --> 发布测试环境阶段 --> ... 而提问者希望当有代码提交时,就执行整条流水线。当到某个时间点时,就只执行扫描阶段。

回答一

当代码没有变化,我们为什么要重复执行扫描呢?

回答二

换成两个流水线,一个提交触发,一个定时触发

回答三

一条流水线加个开关设置是否跳过扫描。

2. 有人做过增量包构建么?

有人做过增量包构建么?问下要用哪些插件,怎么做?经确认,提问人的需求是有一个代码仓库 x,然后 x 里有 a,b,c 三个模块,开发提交了 a 模块的代码,这时,只打包 a 模块的制品。

回答一

要做的是在流水线里判断提交代码中修改了哪个模块,然后执行你的 ant 命令指定构建某个模块就好了。代码 demo 如下:

代码语言:javascript
复制
pipeline{
    agent any
    stages{
        stage('build a'){
            when{
                changeset "a/**"
            }
            steps{
                echo "build a"
            }
        }
        stage('build b'){
            when{
                changeset "b/**"
            }
            steps{
                echo "build b"
            }
        }
    }
}

回答二

增量包,四五年前我有过相关实践,构建工具也是 ant。记得当初是根据修改的文件路径,解析出 ant target 列表,然后根据事先声明好的依赖关系对它排序,然后执行 ant 构建命令,最后将生成的二进制包挑出来生成增量包,大致这么个思路。

3. post 里如何指定 agent

请教一下,jenkinsfile中 post里面可以指定agent吗?

回答

代码语言:javascript
复制
post {
 always {
  node('master') {
   cleanWs()
   }
   }
}

笔者注:node('<node>') 中的 <node> 可以是 agent 节点名称,也可以是 agent 的标签。

4. windows 上 无法使用 curl

有些步骤是跑在 Windows 节点上,在 Windows 上又希望能发 http 请求。

回答

这时,应该使用 HTTPRequest 插件,它是平台无关的。

4. 怎么把 slave 的内容 copy 到 master 机器上?

因为比如我用有一个 windows 节点,然后我代码拉取后,需要进行一些测试,测试完成后生成数据和 HTML 报告,这部分测试全都在节点上完成,我想把测试完成后到数据发到 master 上,然后由 master 生成 html 报告

回答

不确定,我是否理解正确。可以考虑这样做,把你现在的事情分成两个阶段,阶段一在 windows 上测试,然后将数据和 html 报告上传到某个地方,阶段二,将数据和报告下载回来,比如下载到 master 上。接着,想干嘛就干嘛了。

5. httpRequest 如何发 POST 请求

httprequest这个插件 请求body这块一行一个参数?

回答

代码语言:javascript
复制
httpRequest authentication: credentialName, contentType: 'APPLICATION_JSON_UTF8', httpMode: 'POST', requestBody: """{"reportJson": "111","id": "111","executeNum": 111}""", responseHandle: 'LEAVE_OPEN', url: "http://127.0.0.1/echo"

6. 我仓库特多,怎么设计流水线

我的仓库一共有4个 分别存放 代码 战斗脚本 资源 协议。4个代码仓库各有3个分支 名字都是对应的,比如1号仓库分支 master develop production. 2号仓库 也是这几个分支 以此类推 我拉取代码进行打包的时候 会拉取 4个仓库名字都叫 master 的分支 或者名字都叫 develop 的分支进行打包 现在问题就出在 我拉取4分仓库都叫 master 的分支的时候 拉取完代码后 最后一个仓库的代码会把前个仓库的代码覆盖掉,后来有老哥给了建议 用 dir 分别存到 workspace 下的好几个目录 现在遇到的问题是 我多分支流水线第一次启动时,会把1号仓库的代码直接拉到 workspace 下 我的问题就是可以不可在多分支流水线第一次启动时,不要拉取代码

回答

建立一条流水线,接受 gitlab 触发,然后根据触发请求中的数据,决定拉取哪个代码仓库。参考 Generic Webhook Trigger 插件。

7. 流水线中如何指定工作目录

pipeline 中怎么指定这个流水线的工作目录,我在开头定义 WORKSPACE 但是没用

回答

8. 如何在 pipeline 中使用第三方 jar 包

请教下 pipeline 需要引用第三方 jar 包时,要放在哪里才能被 import 进来啊,我放到 classpath 下还是不行,总是提示找不到包。在本地执行 groovy,impor t进来没有问题

回答

把 jar 包放到 tomcat 安装 jenkins 的目录下的 lib 里貌似能解决。

后记

如果读者朋友在使用 Jenkins 过程中也遇到各种问题,可关注Jenkins微信公众号。后台回复“微信群”入群。群里会有热心朋友回复。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Jenkins 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 同一流水线,如何做某个阶段定时执行代码扫描
    • 回答一
      • 回答二
        • 回答三
        • 2. 有人做过增量包构建么?
          • 回答一
            • 回答二
            • 3. post 里如何指定 agent
              • 回答
              • 4. windows 上 无法使用 curl
                • 回答
                • 4. 怎么把 slave 的内容 copy 到 master 机器上?
                  • 回答
                  • 5. httpRequest 如何发 POST 请求
                    • 回答
                    • 6. 我仓库特多,怎么设计流水线
                      • 回答
                      • 7. 流水线中如何指定工作目录
                        • 回答
                          • 8. 如何在 pipeline 中使用第三方 jar 包
                            • 回答
                            • 后记
                            相关产品与服务
                            腾讯云代码分析
                            腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档