Jenkins概念
Jenkins是一个可扩展的持续集成引擎,是一个新的CI工具(类似于目前项目中再用的Gitlab CI)
作用:
- 能够持续自动构建/测试软件项目。
- 监控一些定时执行的任务。
特性:
- 易于配置-所有配置都是通过其提供的web界面实现。
- 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知
- 生成JUnit/TestNG测试报告。
- 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
- 支持扩展插件
相对于Gitlab CI的优势
- 编译服务和代码仓库分离,耦合度低
- 插件丰富,支持语言众多。
- 有统一的web管理界面。
相对于Gitlab CI的劣势
- 插件以及自身安装较为复杂
- 体量较大,是相对大些项目、团队
编写HelloWord
pipeline {
agent any
stages{
stage ('Hello word') {
steps{
sh """
touch hello.txt
echo "helloword" > hello.txt
pwd
"""
}
}
}
}
Jenkins流水线
Pipeline支持两种语法:Declarative Pipeline(声明式管道)(在Pipeline 2.5中引入,结构化方式)和Scripted Pipeline(脚本式管道),两者都支持建立连续输送的Pipeline。区别:脚本式流水线更加自由,声明式比较新,目前为主流使用。
声明式流水线
pipeline{
agent any
stages{
stage ('get code'){
steps{
echo "get code"
}
}
stage('build code'){
steps{
echo "build code"
}
}
stage('deploy code'){
steps{
echo "deploy code"
}
}
}
}
脚本式流水线
node{
stage('get code'){
echo "get code"
}
stage('build code'){
echo "build code"
}
stage('deploy code'){
echo "build code"
}
}
自由风格流水线
目录:Newitme --> Freestyle project --> -->build -->add build step execute shell
ip addr;uname -a
流水线单引号和双引号注意点:
1.如果没有特殊字符,用单引号和双引号是一样的
2.如果有特殊字符需要解释,用双引号。需要转义的情况,用\转义符。
3.如果要执行多行命令,用三个单引号或三个双引号。
测试样例:
echo 'I have $100'
echo "I have \$100"
echo "PATH = ${PATH}"
Jenkins配置插件和凭据、全局变量
配置插件
1. 安装:Jenkins --> Plugin Manager
2. 配置Jenkins --> Global Tool Configuration
3. 使用样例
node {
stage('show go version'){
def root = tool name: 'go1.13', type: 'go'
withEnv(["GOROOT=${root}", "PATH+GO=${root}/bin"]) {
sh 'go version'
}
}
}
配置凭据
1. 配置:Jenkins --> 凭据 --> 系统 --> 全局凭据 (unrestricted)
2. 使用样例
pipeline {
agent any
environment {
DOCKER_ACCESS_KEY = credentials('docker_jhl')
}
stages{
stage ('docker login') {
steps{
sh 'docker login -u ${DOCKER_ACCESS_KEY_USR} -p ${DOCKER_ACCESS_KEY_PSW} harbor.honops.com'
}
}
}
}
技巧:在对应的后面增加_USR和_PSW
配置变量
1.Jenkins --> configuration --> Global properties
2.使用样例 sh 'echo $GoBuildVer'
Jenkins git拉取、构建、部署
**以Go项目为例:**Git项目中 放入Jenkinsfile、Dockerfile、makefile文件,通过Jenkins做流水线,makefile做打包构建、Dockerfile作为打包容器和指标镜像。
本地Git拉取样例:
stage('git pull') {
steps {
git credentialsId: 'saas_deploy', url: 'http://git.honops.com/docs/docs.git'
}
}
本文介绍Jenkins作为持续集成工具的功能和优势,并提供从安装配置到实际使用的详细步骤。涵盖流水线编写、插件配置等核心内容。
2133

被折叠的 条评论
为什么被折叠?



