ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Gitlab自动触发流水线

2021-12-28 18:36:14  阅读:247  来源: 互联网

标签:bin 触发 java openjdk Gitlab Jenkins opt 流水线


Gitlab自动触发流水线

我们希望版本管理工具和持续集成工具联动起来,如提交代码时,自动触发集成工具的进行代码监测,检测成功后集成工具再通知版本管理工具进行下一步操作。

Jenkins会为当前代码库生成一个订阅地址,绑定到Gitlab。而Jenkins想调用Gitlab想调用Gitlab的API则需要其凭证信息。

所以我们配置自动触发流水线最关键两步是把凭证添加到Jenkins上,再将订阅地址绑定到Gitlab上

使用Gitlab Hook Plugin插件

安装插件,【系统管理】->【插件管理】安装“Gitlab hook plugin”、“git plugin”。

注意,此插件依赖ruby-runtime环境,如果使用最新版本Jenkins镜像,JDK版本过高会导致环境安装失败。可参考问题1偷换容器的JDK解决。

初始化项目

本地用vue-cli创建一个工程,添加Jenkinsfile。

pipeline {
    agent any
    stages {
        stage("stage 1: Test auto exe pipline") {
            steps {
                echo 'Test auto exe pipline'
                sh 'echo ${BRANCH_NAME}'
            }
        }
    }
    post {
        always {
            echo 'This will always run'
            sh "env"
        }
        success {
            echo 'successful'
        }
        failure {
            echo 'failed'
        }
    }
}

gitlab创建空白项目(不要初始化任何文件,否则要同步代码),本地工程根目录执行以下命令提交到代码库。

git remote add origin http://xxxxx.git
git branch -M main
git add .
git commit -m 'init project.'
git push -u origin main

配置Gitlab凭据

获取Gitlab凭证

登陆了Gitlab,点击右上角用户图标,选择【偏好设置】,左侧会出现用户设置导航;点击【访问令牌】,按表单内容填写令牌内容。

注意:令牌无法找回,记得保存。

配置凭据

打开Jenkins。

【系统管理】->【Manage Credentials】->【Stores scoped to Jenkins】创建全局凭证,左侧导航有【添加凭据】字样,点击,类型选择“GitLab API token”。

生成凭据后还要去全局配置里让凭据生效

点击Testconnection 测试是否成功,按钮右端会出现“success”字样。

创建流水线

打开Blue Ocean,创建流水线

填写相关信息

流水线创建完毕。注意此处使用最简单的账号密码方式。

配置订阅地址

接下来是获取Jenkins订阅地址,再配置到Gitlab上。

回到Jenkins的Dashboard界面,进入流水线内部。点击单条流水线。

查看配置

拷贝地址

回到Gitlab,进入对应项目,点击左侧导航的怕【设置】->【webhook】

配置网址即可。

触发gitlab push事件。

附录

问题1:Failed to load: Gitlab Hook Plugin (1.4.2) --Plugin is missing: ruby-runtime (0.12)

安装gitlab hook plugin报错。

最开始我用的是jenkins/blueocean镜像,安装ruby-runtime时报一个window错,网上说安装路径带了中午或特殊字符,但我系统用的是Ubuntu,显然不是这个问题。

后来删了容器,用jenkins/jenkins:lts和上次相同的参数创建容器,再次安装,报ruby-runtime: unsupported Java version: 11。我的Java11版本太高,要下载一个低版本JDK,替换掉容器里的JDK,装好ruby-runtime环境后再将原来JDK替换回去。

博客原文:docker jenkins 容器ruby-runtime插件安装失败解决办法

docker exec -it jenkins bash
java -version # openjdk version "11.0.12" 2021-07-20
whereis java # java: /opt/java/openjdk/bin/java

下载jdk-8,替换

#在主机上下载,openjdk8,再将其拷贝进容器内
wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u262-b10/openlogic-openjdk-8u262-b10-linux-x64.tar.gz

docker cp openlogic-openjdk-8u262-b10-linux-x64.tar.gz jenkins:/usr/local
docker exec -it jenkins bash
tar -xvf openlogic-openjdk-8u262-b10-linux-x64.tar.gz
mv openlogic-openjdk-8u262-b10-linux-64/ jdk8
whereis java
mv /opt/java/openjdk/bin/java /opt/java/openjdk/bin/java.bak
ln -s /usr/local/jdk8/bin/java /opt/java/openjdk/bin/java

替换完成之后再把java11换回去

rm -f /opt/java/openjdk/bin/java
mv /opt/java/openjdk/bin/java.bak /opt/java/openjdk/bin/java

标签:bin,触发,java,openjdk,Gitlab,Jenkins,opt,流水线
来源: https://www.cnblogs.com/longhx/p/15742352.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有