1.开发者的工作大概流程是,eclipse编写代码,提交代码到svn,然后进行编译,打包,测试,部署,发布。jekins就是讲提交代码后的所有步骤,进行自动化构建。
2.自动化流程(jenkins和docker之间的关系):
3.培训中关于操作的一些步骤:
相关链接:a. jenkins进入链接 b .name: '*/ci_test', url: '[email protected]:csb-admin/csb-serial.git'——生成流水线语法相关数据
c.jenkins官网
(1)进入TEAIN,新建item--输入名称后,选择流水线--确定
(2)选择流水线定义(不同的定义,只是语法不同,作用相同,选择 Pipeline script)--复制脚本前面步骤--写脚本
(3)进行流水线语法--点击流水线语法,选择checkout,填写数据--点击生成流水线脚本--复制数据
(4)脚本内容
node {
//jenkins本地Dockerfile内容
def DOCKERFILE_CONTENT =
'''
#指定基础镜像
FROM registry.gz.cvte.cn/library/jdk8
#复制包文件,/app为容器内的目录
COPY csb-serial-api/target/csb-serial-api-1.0.0.jar /app/csb-serial-api-1.0.0.jar
RUN touch /root/lzm
#指定容器里jar包的路径
ENV JarPath "/app/csb-serial-api-1.0.0.jar"
#指定其他自定义jvm参数
ENV JAVA_OPTS "-Xms725M -Xmx725M"
#指定工作目录,进入容器终端后可直接到达日志目录,可自行修改为其他日志目录
WORKDIR /app/logs
'''
//jenkins本地Dockerfile路径
def DOCKERFILE_PATH = "Dockerfile-jenkins-local"
def DOCKER_REPO = 'registry.gz.cvte.cn'
//内网镜像仓库名及镜像名
def IMAGE_NAME_WITH_REPO = "train/serial-lzm"
def BRANCH = "ci_test"
stage('Stage 1') {
echo 'Hello World'
}
stage('Checkout') {
GIT_COMMIT_NUMBER = sh (script: 'git rev-parse --short HEAD', returnStdout: true ).trim()
checkout([$class: 'GitSCM', branches: [[name: "${BRANCH}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '209ef664-1af5-4049-ac44-4ac2d5e51eac', url: '[email protected]:csb-admin/csb-serial.git']]])
}
stage('Build') {
sh 'mvn clean package -Dmaven.test.skip=true'
}
stage('UnitTest') {
sh 'mvn test'
}
stage('Image Push') {
sh "cat < ${DOCKERFILE_PATH} ${DOCKERFILE_CONTENT}\nEOF" //将dockerfile写入文件
docker.build("${DOCKER_REPO}/${IMAGE_NAME_WITH_REPO}:${BRANCH}-${GIT_COMMIT_NUMBER}",
" --pull=true --no-cache=true -f ${DOCKERFILE_PATH} . ")
}
}
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
echo 'Hello world!'
}
}
stage('Stage 2') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/ci_test']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '209ef664-1af5-4049-ac44-4ac2d5e51eac', url: '[email protected]:csb-admin/csb-serial.git']]])
}
}
stage('Stage 3'){
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}
stage('UniteTest'){
steps{
sh 'mvn test'
}
}
}
}