一.jenkins的一些概念


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'

            }

        }

   }

}

你可能感兴趣的:(一.jenkins的一些概念)