首页 > 编程知识 正文

jenkins pipeline教程,job传参数

时间:2023-05-03 22:02:25 阅读:129927 作者:313

1、执行简单的命令和脚本

作业配置页:

因为每次构建都会生成很多构建产物,所以如果频繁构建会占用大量空间,可以使用这些选项来控制构建产物的保留。 一般来说,建议保留最近5-10的建立。

我们稍后再谈其他参数。

保存后,创建了一个简单的自由样式作业。 单击以构建并运行,然后查看结果。

在这个小例子中,可以总结以下几点。

1、可以使用Jenkins在页面上通过linux命令行执行必要的操作;

2、如上所述,请勿在生产环境中以root用户启动jenkins。

2、设置为使用Gitlab我们还是使用以前的my-freestyle Job,设置Job从Gitlab中提取前端代码到jenkins。

这里的错误是,jenkins没有配置为连接到Gitlab。 因为jenkins只是拉动Gitlab的代码,所以可以使用Gitlab的部署密钥。

在Jenkins上单击ssh key : [ root @ node3~ ] # ssh-keygen-trsageneratingpublic/privatersakeypair.enterfileinwhichtosavethe id 3360 entersamepassphraseagain : youridentificationhasbeensavedin/root/. ssh/id _ RSA.yourpublickeyhasbeensavedin/yyyya yourpublickeyhas id _ RSA.pub.thekeyfingerprintis : sha 2563360 r4i1nwci//tr qy6 fvadzzb0V8 gmfkbwcdh/caxtkaroot @ node

然后切换到前端仓库:

安装git并在本地测试[ root @ node3~ ] # yuminstallgity [ root @ node3~ ] # gitclonegit @ 192.168.56.123360 we B- sitte can ' tbe established.ecdsakeyfingerprintissha 2563360 sjpoethyvgbi 08 vxtdzyoysqpjr5VL nbu9OBS2LX9q.ecdsakeyfingerprintismd 550 20 0233602336072:72336076336000336017336017336017336017336055.areyousureyouwanttocontinueconnnect ys warning 3360 permanently aded ' 13360 tothelistofknownhosts.remote 3360 counting objects 336034, done.remote : compressing objects :100 % (23/23 )、done.remote:total34(Delta6)、Reused18 ) Delta0) receceivivive

运行构建后,我们现在将代码拖到了作业工作区

3、在代码发行的上面的示例中,Gitlab实现为获取Jenkins的本地。 以下示例将代码实现为向服务器发布。

要在没有设置安全登录的交互式传输文件的情况下运行命令,必须首先确保Jenkins本机能够安全登录到目标主机。

[ root @ node3~ ] # ssh-copy-id-I.ssh/id _ RSA.pub 192.168.56.11/usr /爱笑的长颈鹿/ssh-copy-id : info

Source of key(s) to be installed: ".ssh/id_rsa.pub"The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established.ECDSA key fingerprint is SHA256:lHsG8JxgHwQ3/xdLN/q+h8JtvlWKhtIJn0Zw2t99gb8.ECDSA key fingerprint is MD5:cf:dd:3e:ba:5e:75:24:ce:d4:cf:4f:db:63:3d:8d:6e.Are you sure you want to continue connecting (yes/no)? yes/usr/爱笑的长颈鹿/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/爱笑的长颈鹿/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@192.168.56.11's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.56.11'"and check to make sure that only the key(s) you wanted were added.[root@node3 ~]# ssh 192.168.56.11Last login: Thu Dec 7 08:50:52 2017 from 192.168.56.1[root@node1 ~]# exitlogoutConnection to 192.168.56.11 closed. 编写发布脚本

我们实现将从Git拉到的代码打包,然后发布到node1的/data/web目录下。

编辑我们的Job,在构建处输入如下代码:

构建执行成功后:



我们在Jenkins的工作区my-freestyle目录中生成web-11.tar.gz包,并且已经传送到了node1要求的目录下。

在这里我们作以下两点解释:

1、构建过程中命令执行的当前目录为:Jenkins主目录下workspace目录下Jobname目录;

2、我们可以在脚本中使用Jenkins的各种环境变量,调用方式和我们在linux中调用系统变更方式相同,我们可以使用如下方式查看Jenkins的所有环境变量:

4、参数化构建

上一节中我们介绍了如何使用Jenkins的环境变量,那么我们是不是可以在构建过程中,自定义变量,答案是肯定的,下面我们介绍Jenkins的参数化构建:

配置项目,点击参数化构建过程:

我们看到有多好种类型的参数,我们常用的choice和string。

choice Parameter

choice给出多个选项,构建时可以手动选择参数,默认是第一行数据。


2. string Parameter:

string提供一个文本输入框,使用字符串值的参数变量。

我们添加两个参数:

然后在我们脚本中调用:

保存后,我们发现:

点击Build with parameters:

点击开始构建,查看构建结果如下:

还有很多其他的可用参数:Boolean Parameter提供一个布尔选择,password Parameter参数提供一个类似密码的输入框,Git Parameter可以选择需要签出代码的分支、标签等。

5、Git commit触发Jenkins 构建

本次实验,我们新建一个freestyle Job,实现开发在本地向frontend 仓库dev 分支push 代码,Jenkins自动拉取dev分支的代码,然后进行构建后将代码发布到指定的服务器。

安装插件

实现Jenkins与Gitlab的联动需要安装:Gitlab Authentication plugin、GitLab Plugin这两个插件。

配置Jenkins连接Gitlab

系统管理—系统设置


我们转到GitLab上生成一个token:




我们复制生成的token,添加到jenkins:

选择刚才生成的认证

3. 新建frontend Job:

我们使用复制的方式创建新的Job,


我们发现新生成的frontend-job配置与my-freestyle一样,我们可以在此基础做改动。

源码管理部分:我们选择从dev分支拉取代码

构建触发器部分:


此选项主要配置Gitlab如何触发Jenkins Job构建,这里我们配置只有dev分支的push操作会触发构建,并生成一个token,在前面我们配置了Jenkins可以访问Gitlab,但是Gitlab并不能访问Jenkins,此的token用于配置Gitlab访问Jenkins(我们后面介绍)。

构建部分我们设置如下:

4. 配置Gitlab仓库连接Jenkins

在Gitlab中选择frontend仓库,点击settings下的Integrations:


URL与Secret Token的值来自刚才我们在Jenkins配置构建触发器部分,见下图。


完成配置后,我们进行测试,

[root@node1 frontend]# git checkout devAlready on 'dev'Your branch is up-to-date with 'origin/dev'.[root@node1 frontend]# git branch 1-index 2-news* dev master[root@node1 frontend]# vim index.html [root@node1 frontend]# git add .[root@node1 frontend]# git commit -m "modify index.html"[dev 17365f9] modify index.html 1 file changed, 1 insertion(+)[root@node1 frontend]# git push origin devCounting objects: 3, done.Delta compression using up to 2 threads.Compressing objects: 100% (3/3), done.Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.Total 3 (delta 1), reused 0 (delta 0)remote: remote: To create a merge request for dev, visit:remote: http://192.168.56.12/web-site/frontend/merge_requests/new?merge_request%5Bsource_branch%5D=devremote: To 192.168.56.12:web-site/frontend.git a33914c..17365f9 dev -> dev



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。