Jenkins部署及持续集成——傻瓜式教程

news2024/11/27 16:28:33

文章目录

    • jenkins安装
    • jenkins启动
    • jenkins登录
    • jenkins插件
    • Jenkin创建一个项目
    • 通过Git进行构建
    • 构建策略

jenkins安装

jenkins官网 https://www.jenkins.io/

请添加图片描述

支持Docker pull下载安装

我用的windows,这里下载war包,这个位置下载的是最新的,需要java11或者更高,我电脑是java1.8,所以我选择去历史版本

请添加图片描述

打开网页,历史release包,https://get.jenkins.io/war-stable/

找到可以用java1.8支持的jenkins包

请添加图片描述

我下载的是2.346.1

请添加图片描述

jenkins启动

下载好后,在jenkins.war包下打开cmd命令窗口,输入如下命令

java -jar jenkins.war

请添加图片描述

启动的时候如果报错:Failed to bind to ... ,表示端口冲突,启动的时候需要指定端口启动

指定端口启动命令:(默认是8080端口)

java -jar jenkins.jar --httpPort=9001

出现红框黄线处的信息,表示启动成功

请添加图片描述

根据自己使用的端口,在浏览器界面打开,可以加载出jenkins的登录界面,如果没有指定端口,默认是8080端口

jenkins登录

打开后页面如下,需要初始化密码

请添加图片描述

方法一:进入到C:\Users\xiaozai\.jenkins\secrets\initialAdminPassword

请添加图片描述

打开这个文件,我用的是Sublime Text打开的,里面会有一串密码,把它复制出来,回到解锁Jenkins页面。

请添加图片描述

方法二:

在你刚刚启动的命令行窗口,有一堆星号夹着的地方,有一串密码,那个也是你的解锁密码,如下图所示

请添加图片描述

jenkins插件

输入密码后点击继续,这时候来到了新手入门界面,自定义Jenkins

请添加图片描述

如果选择安装推荐的插件,则需要耗费很长的时间,这里我们选择插件来安装

点击选择插件来安装后,来到这个页面,我们点击,点击后确认页面无勾选,最后点击安装则可以快速进入到下一步。

请添加图片描述

点击安装之后,会让你创建第一个管理员用户,这里可以根据你的实际需求来设置,也可以点击使用admin账户继续。

请添加图片描述

实例配置

由于我们是本地环境,可以使用默认的即可

请添加图片描述

点击保存并完成后,我们的Jenkins就已经准备就绪了,可以愉快地使用了。

请添加图片描述

Jenkin创建一个项目

进入Jenkins,我们看到崭新的界面。

请添加图片描述

1、点击左侧的 New Item新建一个名为webDemo的项目,风格选择Freestyle project,点击OK

请添加图片描述

2、暂时先不对项目进行一些设置,后续再讲,先进行Save保存

请添加图片描述

3、构建项目,点击Build Now

请添加图片描述

构建成功之后,会变成绿色的小勾。

请添加图片描述

查看构建输出日志

请添加图片描述

请添加图片描述

4、目前我们没有传任何代码,这里就没有跑代码,跑的是一个空包。

5、看英文觉得费劲的,可以去下载中文插件,下载方式:回到Jenkins首页Dashboard --> Manage Jenkins --> Manage Plugins --> Availabel --> 输入Chinese ,如下页面,下载安装即可。

请添加图片描述

请添加图片描述

之后界面的内容就,emmmm,中英文混合了,哈哈哈哈哈哈哈…建议还是要学一哈子英文的。

6、构建成功后,我们可以看到,代码在我们的C:\Users\xiaozai\.jenkins\workspace目录下,所有的构建的项目都会在这个文件下。理论上说,你是可以把代码直接丢到这个文件夹下的。

请添加图片描述

7、把代码挪过来(后续讲通过git同步代码)

请添加图片描述

文件夹结构如下:

webDemo 
 - tests
 |  - test_selenium.py
 - run.py

test_selenium.py内容如下:

from selenium import  webdriver

def test_connect_chrome():
    ''''''
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    driver.quit()

if __name__ == '__main__':
    test_connect_chrome()

run.py文件代码如下:

import pytest
pytest.main()

8、回到jenkins中的webDemo项目中,点击Configure进行配置

请添加图片描述

9、我用的windows,滑到Build,选择Execute Windows batch command,输入pytest,点击Save

请添加图片描述

10、再次进行Build,绿色代表构建成功,红色代表构建失败,可以去控制台查看构建日志

​ 我这里就是因为本地windows的python环境没放好,导致构建了几次都失败了。

请添加图片描述

请添加图片描述

构建的过程中我们可以看到谷歌浏览器被打开了。

通过Git进行构建

上面我们是通过本地,挪动文件夹的形式进行构建,但往往实际不会这样去操作,更多的是通过版本控制进行构建。

没有学过git的同学需要学习一下,这里我就不赘述了,我这些代码是已经上传到了github的私人仓库。

接下来我们直接在Jenkins里面操作。

请添加图片描述

1、去下载git插件

请添加图片描述

2、进入到webDemo的配置中,在Source Code Management中勾选Git

  • 在Repository URL中填入github你的项目地址。
  • 在Credentials下点击添加,填入你github的账户名密码

请添加图片描述

  • 添加好账户密码后,在Credentials的下拉框中就会出现你添加的账号密码。

  • 点击Save

3、点击Build,Jenkins会自动去github上拉取你的代码,执行构建,构建成功如下。

请添加图片描述

构建策略

我们发现,每次要构建,都需要我们手动去点击一下build,有没有一种方法可以让Jenkins自动构建代码呢?

依然是进入到webDemo的Configure中去。

1、找到Build Triggers,中文是构建触发器

请添加图片描述

  • Trigger builds remotely - 触发远程构建
  • Build after other projects are built - 在某个项目构建之后,可以把“自动化部署”项目写在这里,部署后立刻进行自动化测试。
  • Build periodically - 定期构建,* * * * * 分别代表: 每多少分钟执行一次、每天几点执行一次、每个月几号执行一次、每年几月份执行一次、 每周周几执行一次(常用)

请添加图片描述

图片中的表示每个月的8号,15:30分执行一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记:Depth-supervised NeRF: Fewer Views and Faster Training for Free

中文标题:深度信息监督的神经辐射场:需要更少的视角并且更快的训练 解决的问题: 在缺少视野的情况下,神经辐射场不能拟合正确的几何结构。 创新点 NeRF的第一步需要对场景图像做SFM(structure from motions),这个过程不光会获…

数据库/SQL教学推荐用什么样SQL工具?必须管理方便,轻松上手的

SQL语言逐渐成为职场人士必备的能力。很多人一直走上职场才了解什么是SQL,而更多人在大学就已经开始学习。 这些人一定对类似《数据库原理与应用》的课程不陌生。还记得你们是怎么熬过这门课的吗? 为什么说“熬”呢?实话说,数据库…

1行Python代码,对话ChatGPT,网友:太方便了

大家好,这里是程序员晚枫。 最近ChatGPT火爆全球,哪怕你不是程序员,应该也听过他的大名了。 今天我们就来一起体验一下~1行Python代码就够了! 上代码 导入poai这个库后,只需要1行代码poai.chatgpt.chat&#xff0c…

ThinkPHP 6 视图:从零开始

框架6.0默认只能支持PHP原生模板,如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)。 PHP原生模板 1.配置文件 默认设置为Think,因为没有安装,直接使用会…

lucene-8.5.1总结三:索引文件格式(1)

Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒…

基于 NeRF 的 App 上架苹果商店!照片转 3D 只需一部手机,网友们玩疯了

前言 只用一部手机,现实中的 2D 照片就能渲染出 3D 模型? 没错,无需再手动上传电脑或安装激光雷达,苹果手机自带 App 就能生成 3D 模型。 这个名叫 Luma AI 的“NeRF APP”,正式上架 App Store 后爆火: 小…

一个优质软件测试工程师的简历应该有的样子(答应我一定要收藏起来)

个人简历 基本信息 姓 名:xxx 性 别: 女 年 龄:24 现住 地址: 深圳 测试 经验:3年 学 历:本科 联系 电话:18xxxxxxxx 邮 箱:xxxxl163.com 求职意向 应聘岗位:软件…

吸收氨氮的树脂,脱氨树脂,污水处理厂氨氮低,总氮高,如何处理

产品介绍 氨氮在水中以游离氨和铵根离子的形式存在,根据一水合氨与铵根的平衡关系可知,利用离子交换工艺除氨氮时pH值尽量在偏酸性(pH值6左右)环境效果更佳。 随着环保形势越来越严,对于总氮的深度处理标准也越来越严…

CNStack 2.0:云原生的技术中台

在进入千禧年后,随着计算机技术的发展和业务创新的不断涌现,许多大公司内的 IT 计算中心也在酝酿着变革。一方面,各部门相对独立的 IT 管理平台已经难以满足日益增长和不断变化的计算管理需求;另一方面,IT 计算中心也越…

国民应用QQ如何实现高可用的订阅推送系统

导语|腾讯工程师许扬从 QQ 提醒实际业务场景出发,阐述一个订阅推送系统的技术要点和实现思路。如何通过推拉结合、异构存储、多重触发、可控调度、打散执行、可靠推送等技术,实现推送可靠性、推送可控性和推送高效性?本篇为你详细…

OpenFST、WFST 小记

文章目录关于 OpenFST安装 openfst关于 WFST编译 WFST关于 OpenFST 官网:https://www.openfst.org/twiki/bin/view/FST/WebHome快速入门文档:https://www.openfst.org/twiki/bin/view/FST/FstQuickTour下载:https://www.openfst.org/twiki/b…

linux系统安装jdk+tomcat+mysql

连接linux Windows安装FinalShell免费版,连接linux服务器 Mac OS连接步骤如下: 打开终端,输入ssh 服务器用户名ip -p 端口号(如:ssh root000.000.000.00 -p 22)到这会让你输入yes或者no来确认是否连接,输…

APISpace 的 ChatGPT 它来了 一分钟快速接入没烦恼

如此火爆的 ChatGPT 大家肯定都已经知道了,我就不多说了。但是呢, OpenAI 的 ChatGPT 官网注册麻烦,接入繁琐,且需要海外信用卡才能支付,这就让广大的国内开发者头疼了。 于是,为了方便广大国内开发者体验…

加入bing体验chatGPT大军中来吧

1 第一步:加入候选名单 1、首先需要加入候选名单 https://www.microsoft.com/zh-cn/edge?formMA13FJ 2、下载最新的Edge浏览器、androd、iOS都有试用版本(可以看到iOS加护当前已满) 这里我下载的是dev版本,Canary版本由于是…

王道操作系统笔记(七)——— 内存管理的基本原理和要求

文章目录一、内存的概念和作用二、内存管理的概念三、进程运行的基本原理和要求3.1 程序执行过程3.2 逻辑地址和物理地址3.3 程序的链接3.4 程序的装入3.5 内存保护四、覆盖与交换4.1 覆盖技术4.2 交换技术一、内存的概念和作用 主存储器,简称主存,又称内…

【Spark分布式内存计算框架——Spark Core】4. RDD函数(中)Transformation函数、Action函数

3.2 Transformation函数 在Spark中Transformation操作表示将一个RDD通过一系列操作变为另一个RDD的过程,这个操作可能是简单的加减操作,也可能是某个函数或某一系列函数。值得注意的是Transformation操作并不会触发真正的计算,只会建立RDD间…

int、uint类型的比较与加减

uint与int的比较 int与uint比较时会把int转换成uint&#xff0c;一个负的int转换成uint会溢出。所以uint与int比较大小时容易得到错误的结果&#xff0c;如&#xff1a; #include <iostream> using namespace std;int main(int, char**) {cout << "compare …

IC真题 —— 刷题记录(1)

引言 记录一些 我自己刷的 IC行业招聘真题&#xff0c;不是每题记录&#xff0c;只记录一些值得记录的&#xff0c;写下自己的看法。主要是一些数字IC行业题目&#xff0c;偏前端。 1、有一个逐次逼近型 8位A/D 转换器&#xff0c;若时钟频率为250KHz&#xff0c;完成一次转换…

2023备战金三银四,自动化软件测试面试宝典合集

1.软件测试的定义是什么&#xff1f; 参考答案&#xff1a; 用手工或者自动化的方式执行测试用例的一个过程 2.软件测试的对象包括哪些&#xff1f; 参考答案&#xff1a; 源程序、目标程序、数据和相关文档 3.试结合软件开发流程模型&#xff0c;描述对应不同的阶段测试需要…

Linux系统

Linux系统 Linux操作系统&#xff1a;Windows、Mac Linux一切皆文件&#xff1a;文件就 读、写、&#xff08;权限&#xff09; Linux——》Redis——》Docker 学习方式&#xff1a; 认识Linux 基本的命令&#xff08;重点&#xff1a; git 讲了一些基本的命令&#xff0…