目 录CONTENT

文章目录

创建个人开发的流水线(IDE--Git--Jenkins)

chenming
2021-08-21 / 0 评论 / 0 点赞 / 239 阅读 / 0 字 / 正在检测是否收录...

上传至Gogs

Gogs是一个十分轻量的git仓库,具体怎么安装见官网,这边我们可以在gogs上设置git钩子,也就是针对git事件的回调函数。我们选择的是post-receive事件,也就是代码git push完毕后执行的回调函数:image

脚本里执行jenkins的api去构建流水线

Jenkins流水线

因为调用jenkins的api需要携带token,所以我们需要在流水线中开启触发远程构建,然后生成用户的token(在用户的配置中)
image

然后jenkins的build api就能使用了,也就是上述git钩子的脚本用的api

# <job_token_name>:远程构建的token名
curl -X POST --data-urlencode token=<job_token_name> -u <username>:<user_token> <jenkins_url>/job/<pipeline_name>/build

然后编写流水线脚本

pipeline {
    agent any
    stages {
	   # 拉取代码
       stage('Git拉取') {
            steps {
                echo '======start to pull code======'
                sh 'git clone http://13110514277:185123456@172.17.0.2:3000/13110514277/MyWeb.git'
            }
        }
		# 静态检查
        stage('CheckStyle') {
            steps {
                echo '======start to static scan code======'
                sh "java -cp /var/lib/jenkins/code_check/checkstyle/checkstyle-8.45-all.jar com.puppycrawl.tools.checkstyle.Main -c /var/lib/jenkins/code_check/checkstyle/google_checkstyle.xml -f xml -o checkstyle_result.xml ${WORKSPACE}"
                echo '======start to export report======'
                recordIssues(tools: [checkStyle(pattern: 'checkstyle_result.xml', reportEncoding: 'UTF-8')])
            }
        }
		# 部署,这步我没写
        stage('Deploy') {
            steps {
                echo '======start to deploy this application======'
                sh "echo 'wait to write the shell'"
            }
        }
    }
    post {
		# 清理工作空间
        always {
            echo '======start to clean workspace======'
            sh "rm -rf *"
        }
    }
}

至此,整个流程就建立完成了

0

评论区