Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建

时间:2024-03-30 20:39:31

    jenkins相关博文,之前已经发了两篇,一篇为安装与基础常用工具配置。第二个是常见的maven项目的打包部署至tomcat。但是有时候,一些分布式的项目,需要部署很多单独的服务,需要将项目的编译打包和部署等进行分离。并可以实现自动的触发构建等,当然也可以自己手动。

    这里,我就主要使用Copy Artifact Plugin插件来完成job的分离,顺便详细说明此插件的用法。


一: Copy Artifact Plugin 插件是个比较简单的插件,就是将某个job的构建物copy到当前job的工作空间。以此来将不同的job进行关联。

PS:  注意maven项目的构建物为构建的jar包或war包等,构建物也就是构建后会进行存档的文件,具体的可以查看job,比如下图中圈出来的就是构建完成后存档的文件,使用此插件只能copy存档的文件,而不是直接copy工作空间。

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


而当我们想要copy的文件,不在构建结果中时,那怎么才能拿到别的job的工作空间内的文件呢,这里,只需要在你需要拿job的配置中,新增一个配置,如下图,在构建后,选择进行存档的文件,此路径为相对工作空间的路径,并在高级设置中,勾选第二行,只在构建成功时才存档文件。配置后,当项目构建成功后,就会将此路径的文件保存到存档文件中,可以被其他job使用Copy Artifact 进行复制。

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


在编译打包的job中,根据需要配置了存档文件后,在需要的job种,使用copy Artifact 将存档文件复制到当前job的工作空间,如下: projectname 就是job的名称,且这个是字符串可以通过参数进行控制,下面可以进行选择复制的存档,一般选最新的成功的构建,第三个框,则是路径,需要复制的存档文件的路径。可以是文件夹或文件,可以用一些通配符。最后一个默认是复制存档的整个目录结构完整复制到当前job。

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


OK,成功将别的job的存档文件,复制到当前job后,就可以去工作区的文件进行操作,进行部署了,具体的部署方式就根据自己项目而定了。



二: 建立gitlab触发构建

    触发器在jenkins中是非常常用且好用的,可以通过上下游job的触发来完成job之间的关联,可以通过调用api的方式的来触发,也可以定时触发,以及通过gitlab的代码提交合并等来进行触发构建。

这里主要讲一下与gitlab结合,通过gitlab的代码提交来触发job构建。前提得先安装GitLab 插件,如下图进行配置:

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


然后点击高级,主要设置如下,可以通过allowed branches来设置允许触发构建的分支,然后点击Generate随机生成

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


点击勾选了此触发器后,会出现一个网址,这个网址就是api地址,用于设置在gitlab上,进行调用触发构建的。复制一下这个地址,然后打开gitlab。在需要触发的项目的 设置 -- 集成 中。链接url就填入上面的api地址,安全令牌出填入上面随机生成的Secret token 

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


    增加web钩子后,可以点击进行测试,在这个触发器中也可以选择触发事件,点击测试访问返回200状态码则为成功,然后就可以看下你jenkins上的job是否被触发开始了构建。成功的触发,还会表明触发的事件,比如:

Jenkins Copy Artifact Plugin使用详解 以及gitlab触发构建


    OK,到此就完成了gitlab与jenkins的触发构建,至于其他触发都很常见的,如何配置点问号看说明就可以了。

    OK,今天说到这里。别的下次再继续