Jenkins
2021-11-23 17:36:41 2 举报
AI智能生成
Jenkins
作者其他创作
大纲/内容
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
Jenkins 是什么?
Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)。Jenkins也可以运行在不同的Java servlet容器中作为servlet运行.
安装Docker
建议使用的Docker映像是jenkinsci/blueocean, 该镜像捆绑了所有Blue Ocean插件和功能
打开一个终端窗口。
--rm 关闭时自动删除Docker容器
-d 在后台运行容器(即“分离”模式)并输出容器ID
-p 容器与宿主机间的端口映射
-v 容器中的jenkins目录映射到计算机本地文件系统上的目录
-v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker,例如, agent { docker { ... } }
下载 jenkinsci/blueocean 镜像并使用以下docker run 命令将其作为Docker中的容器运行 :docker run \\ -u root \\ --rm \\ -d \\ -p 8080:8080 \\ -p 50000:50000 \\ -v jenkins-data:/var/jenkins_home \\ -v /var/run/docker.sock:/var/run/docker.sock \\ jenkinsci/blueocean可选参数:--env JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true
在macOS和Linux上
打开命令提示符窗口。
下载 jenkinsci/blueocean 镜像并使用以下 docker run 命令将其作为Docker中的容器运行 :docker run ^ -u root ^ --rm ^ -d ^ -p 8080:8080 ^ -p 50000:50000 ^ -v jenkins-data:/var/jenkins_home ^ -v /var/run/docker.sock:/var/run/docker.sock ^ jenkinsci/blueocean
在Windows上
在Docker中下载并运行Jenkins
docker exec -it jenkins-blueocean bash
访问Jenkins / Blue Ocean Docker容器
docker logs <docker-container-name>
通过Docker日志访问Jenkins控制台日志
Docker
将最新的稳定Jenkins WAR包 下载到您计算机上的相应目录。
在下载的目录内打开一个终端/命令提示符窗口到。
运行命令java -jar jenkins.war可选参数:-Dhudson.model.DownloadService.noSignatureCheck=true
浏览http://localhost:8080并等到*Unlock Jenkins*页面出现。
通过 Manage Jenkins > Manage Plugins安装Blue Ocean
WAR文件
brew install jenkins
Mac Os
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'sudo apt-get updatesudo apt-get install jenkins
Linux
安装平台
安装Jenkins
浏览到 http://localhost:8080(或安装时为Jenkins配置的任何端口),并等待 解锁 Jenkins 页面出现。
从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。
在 解锁Jenkins 页面上,将此 密码 粘贴到管理员密码字段中,然后单击 继续 。
解锁 Jenkins
先安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例.
也可以通过Jenkins中的Manage Jenkins > Manage Plugins 页面在稍后的时间点安装(或删除)其他Jenkins插件
自定义jenkins插件
admin/123456
创建第一个管理员用户
安装后设置向导
Jenkins 流水线 (或简单的带有大写\"P\"的\"Pipeline\") 是一套插件,它支持实现和集成 continuous delivery pipelines 到Jenkins。对Jenkins 流水线的定义被写在一个文本文件中 (成为 Jenkinsfile),该文件可以被提交到项目的源代码的控制仓库。 [2] 这是\"流水线即代码\
流水线
节点是一个机器 ,它是Jenkins环境的一部分 and is capable of执行流水线。
节点
stage 块定义了在整个流水线的执行任务的概念性地不同的的子集(比如 \"Build\
阶段
步骤
流水线概念
在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
通过 Blue Ocean
从Jenkins 主页(即 Jenkins 经典 UI 的工作台),点击左上的 \"新建任务\"。
在 输入一个任务名称字段,填写你新建的流水线项目的名称。
向下滚动并点击 \"流水线\",然后点击页面底部的 \"确定\" 打开流水线配置页
点击页面顶部的 \"流水线\" 选项卡让页面向下滚动到 \"流水线\" 部分。
在 \"流水线\
将你的流水线代码输入到 脚本 文本区域。
点击 \"保存\
在左侧的 \"Build History\" 下面,点击 \"#1\" 来访问这个特定流水线运行的详细信息。
点击 \"Console Output\" 来查看流水线运行的全部输出。下面的输出显示你的流水线已成功运行。
通过经典 UI 在 Jenkins 中直接输入基本的流水线。
通过经典 UI
按照 通过经典 UI上面的步骤定义你的流水线直到第4步(在流水线配置页面访问流水线部分)。
从 定义 字段选择 Pipeline script from SCM 选项
从 SCM 字段,选择包含 Jenkinsfile 文件的仓库的源代码管理系统的类型。
填充对应仓库的源代码管理系统的字段。
在 脚本路径 字段,指定你的 Jenkinsfile 文件的位置(和名称)。这个位置是 Jenkins 检出/克隆包括 Jenkinsfile 文件的仓库的位置,它应该与仓库的文件结构匹配。该字段的默认值采取名称为 \"Jenkinsfile\" 的 Jenkinsfile 文件并位于仓库的根路径。
手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。
在源码管理系统中(git...)
定义流水线
流水线支持 两种语法:声明式(在 Pipeline 2.5 引入)和脚本式流水线。 两种语法都支持构建持续交付流水线。两种都可以用来在 web UI 或 Jenkinsfile 中定义流水线,不过通常认为创建一个 Jenkinsfile 并将其检入源代码控制仓库是最佳实践。
通常这个阶段包括源代码的组装、编译或打包。Jenkinsfile 不能替代现有的构建工具,如 GNU/Make、Maven等,而应视其为一个将项目的开发生命周期的多个阶段(构建、测试、部署等)绑定在一起的粘合层。
构建
运行自动化测试是任何成功的持续交付过程的重要组成部分。因此,Jenkins 有许多测试记录,报告和可视化工具,这些都是由各种插件提供的。最基本的,当测试失败时,让 Jenkins 记录这些失败以供汇报以及在 web UI 中可视化是很有用的。
测试
部署可以隐含许多步骤,这取决于项目或组织的要求,并且可能是从发布构建的交付件到 Artifactory 服务器,到将代码推送到生产系统的任何东西。
部署
创建 Jenkinsfile
Jenkins 流水线通过全局变量 env 提供环境变量,它在 Jenkinsfile 文件的任何地方都可以使用。
设置环境变量声明式流水线支持 environment 指令,而脚本式流水线的使用者必须使用 withEnv 步骤。
使用环境变量
Jenkinsfile
pipeline { agent { docker { image 'node:7-alpine' } } ......}
自定义执行环境
pipeline { agent none stages { stage('Back-end') { agent { docker { image 'maven:3-alpine' } } steps { sh 'mvn --version' } } stage('Front-end') { agent { docker { image 'node:7-alpine' } } steps { sh 'node --version' } } }}
使用多个容器
流水线支持从源仓库的`Dockerfile` 中构建和运行容器。 与使用\"现成\
定义Dockerfile文件,提交到源仓库的根目录下
agent { // Equivalent to \"docker build -f Dockerfile.build --build-arg version=1.0.2 ./build/ dockerfile { filename 'Dockerfile.build' dir 'build' label 'my-defined-label' additionalBuildArgs '--build-arg version=1.0.2' }}
使用Dockerfile
在流水线中使用Docker
build 'git-test'
主动触发其他流水线
bat 'echo \"hello world\"'
执行windows脚本
sh 'echo \"hello world\"'
执行linux脚本
拉取代码
archiveArtifacts artifacts: 'target/*.jar'(通常,只要保留构建日志本身,Jenkins 就会为构建保留工件,但如果您不需要旧工件并且更愿意节省磁盘空间,则可以这样保存工件。)
存档工件
cleanWs()
删除此作业的整个工作区
deleteDir()
递归删除当前目录及其内容
dir('path') { // some block }dir块内的任何步骤都将使用此目录作为当前目录,任何相对路径都将使用它作为基本路径。
更改当前目录
echo 'hello'
打印
error 'somthing wrong'在特定条件下要终止程序时可以使用throw new Exception()
发出错误信号
捕获构建过程的错误, 并且可以改变构建步骤状态
fileExists 'filePath'
检查给定文件(作为当前目录的相对路径)是否存在
pieline语法
流水线Pieline
分支主题
Jenkins
0 条评论
回复 删除
下一页