前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins实现git分支自动合并

Jenkins实现git分支自动合并

原创
作者头像
fisherlee
发布2022-03-17 10:09:57
2.5K0
发布2022-03-17 10:09:57
举报
文章被收录于专栏:前端技术杂谈前端技术杂谈

示例代码地址:XYJenkinsPipeline: jenkins pipeline脚本 1、自动合并分支, 拉取master -> 打tag -> 合并所有dev分支 (gitee.com)

介绍

jenkins pipeline脚本 1、自动合并分支, 拉取master -> 打tag -> 合并所有dev分支

流程示意图
流程示意图

说明

配置

Jenkins

更换jenkins为root用户

  1. jenkins的目录设置权限chown -R root:root jenkins目录(eg: var/jenkins_home)
  2. 编辑jenkins文件(docker的Jenkins镜像没找到这个文件)vi /etc/default/jenkins #找到下面两个,改为root JENKINS_USER=root JENKINS_GROUP=root
  3. 重启Jenkinsservice jenkins restart

关闭jenkins跨站请求伪造保护

jenkins2.2以上版本关闭跨站请求伪造保护(高版本jenkins不能在设置界面禁用跨站请求伪造保护)。

  1. 禁用跨站请求伪造保护,修改配置文件(docker的Jenkins镜像没找到这个文件)vi /etc/sysconfig/jenkins JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
  2. 重启Jenkinsservice jenkins restart

生成秘钥

  1. ssh秘钥命令,记住第一步的文件名和安装目录(默认是 /root/.ssh)#按照提示全部回车,不用输入内容 ssh-keygen
  2. jenkins安装目录(eg: /var/jenkins_home)新建.ssh目录mkdir -p .ssh
  3. /root/.ssh中的公钥和私钥 复制到jenkins目录的.ssh目录下面cp /root/.ssh/* /var/jenkins_home/

gitlab

安装环境

说明

  1. 本机docker环境安装jenkins和gitlab
  2. 腾讯云服务器安装jenkins、gitlab.com上传项目

本机docker环境

说明

  • 示例prtainer访问地址:localhost:9000,初始账号/密码为 admin/adminadmin
  • 示例jenkins访问地址:localhost:8082 初始账号/密码为 admin/admin
  • 示例gitlab访问地址(host中做了映射):http://my-gitlab.com:86 初始账号/密码为 root/888888
  • prtainer中管理jenkins和gitlab更加方便
  • docker命令运行失败,检查‘\’后面是否有空格

docker命令备注 -d //启动在后台 --name //容器名字 -p //端口映射(8081:宿主主机端口,8080:容器内部端口) -v //数据卷挂载映射(/data/jenkins_home:宿主主机目录,另外一个即是容器目录) jenkins/jenkins:lts //Jenkins镜像(最新版)

  1. 安装docker desktop
  2. portainer docker可视化管理
    • 安装portainerdocker pull portainer/portainer-ce
    • 本机运行docker run -d -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ --restart=always \ --name prtainer portainer/portainer
    • 远程运行docker run -d -p 9000:9000 \ --restart=always \ --name prtainer portainer/portainer
  3. gitlab安装镜像
    • 安装gitlabdocker pull gitlab/gitlab-ce
    • 需要提前在本机创建gitlab/config、gitlab/logs、gitlab/data三个目录docker run --detach \ --hostname my-gitlab.com \ --publish 4433:443 --publish 86:80 --publish 2222:22 \ --name gitlab \ -restart always \ --volume /Users/lee/gitlab/config:/etc/gitlab \ --volume /Users/lee/gitlab/logs:/var/log/gitlab \ --volume /Users/lee/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
  4. jenkins安装镜像
    • 安装jenkinsdocker pull pjenkins/jenkins:lts
    • 本机运行 需要提前在本机创建docker-jenkins目录 docker run -d \ --name jenkins \ -p 8082:8080 \ -v /Users/lee/docker-jenkins:/var/jenkins_home \ jenkins/jenkins:lts

腾讯云+gitlab.com环境

腾讯云服务器安装jenkins,gitlab.com建立项目

腾讯云服务

参考文章

  1. CentOS下部署Java7/Java8
  2. CentOS 7 下Jenkins安装部署教程
openjdk安装
Jenkins安装
  • 添加yum源sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  • 导入密钥sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  • 安装sudo yum upgrade sudo yum install -y jenkins
  • 开放端口 Jenkins站点的默认监听端口是8080sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
  • 修改jenkins启动脚本vi /etc/init.d/jenkins #修改candidates增加java可选路径:/usr/java/jdk1.8.0_181/bin/java candidates=" /etc/alternatives/java /usr/lib/jvm/java-1.8.0/bin/java /usr/lib/jvm/jre-1.8.0/bin/java /usr/lib/jvm/java-1.7.0/bin/java /usr/lib/jvm/jre-1.7.0/bin/java /usr/bin/java /usr/java/jdk1.8.0_181/bin/java
  • 重载服务(由于前面修改了Jenkins启动脚本)sudo systemctl daemon-reload
  • 启动Jenkins服务sudo systemctl start jenkins
  • 将Jenkins服务设置为开机启动#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令 sudo /sbin/chkconfig jenkins on
  • 首次安装的默认密码cat /var/lib/jenkins/secrets/initialAdminPassword

gitlab

使用gitlab管理项目

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 配置
    • Jenkins
      • 更换jenkins为root用户
      • 关闭jenkins跨站请求伪造保护
      • 生成秘钥
    • gitlab
    • 安装环境
      • 本机docker环境
        • 腾讯云+gitlab.com环境
          • 腾讯云服务
          • gitlab
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档