JENKINS

什么是持续集成

  • Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

持续集成最佳实践

  • 维护一个单一的代码库
  • 使构建自动化
  • 执行测试是构建的一部分
  • 集成日志及历史记录
  • 使用统一的依赖包管理库
  • 每天至少集成一次

什么是jenkins

  • 持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道
  • https://www.jenkins.io/zh/doc/   中文文档

jenkins安装

  • 安装依赖 yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
  • 清华源站下载最新包 wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.294-1.1.noarch.rpm
  • 安装Jenkins  yum localinstall jenkins-2.294-1.1.noarch.rpm -y
  • systemctl start jenkins 
  • systemctl enable jenkins,会报不是本机服务,重定向到chkconfig管理, sbin/chkconfig jenkins on
  • systemctl list-unit-files|grep jenkins 、chkconfig --list

启动用户

  • /etc/sysconfig/jenkins 默认是jenkins用户,改成JENKINS_USER="root",重新启动

jenkins目录

  • /var/lib/jenkins 主目录
  • /etc/init.d/jenkins 启动文件
  • /var/cache/jenkins 程序文件
  • /var/log/Jenkins 日志文件
  • /var/lib/jenkins/workspace/ 项目空间
  • /etc/sysconfig/jenkins 配置文件

访问jenkins

  • 访问Jenkins  http://192.168.1.110:8080
  • 查找admin默认密码   cat /var/lib/jenkins/secrets/initialAdminPassword

安装默认插件

  • 可以点击默认安装,也可以跳过安装,进到后台后手动安装

进入后台

  • 修改admin密码,右上角admin设置(config)

安全警告

  • 全局安全配置,隐藏的安全警告

插件管理

  • 系统设置>插件管理
  • 更新插件、下载安装、代理设置、可用插件
  • 手工安装
  • 升级站点 http://updates.jenkins-ci.org/ 改成 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

覆盖插件目录(如果有下载好的本地插件)

  • mv plugins /var/lib/jenkins/
  • chown -R jenkins.jenkins plugins/

常用插件

  • Chinese (Simplified)  中文插件
  • Pipeline 工作流
  • SonarQube 代码质检
  • SSH plugin
  • Git plugin
  • Git Parameter Plug-In 照标签去发布
  • Deploy Plugin
  • Maven Integration plugin
  • Role-based Authorization Strategy

备份

  • tar zcf jenknis.tar.gz /var/lib/jenkins/

用到的插件有

Localization: Chinese (Simplified)

安装好后,重启一下Jenkins,查看一下
 

Git Parameter Plug-In

jenkins主机的私钥

gitlab的delopy是jenkins主机的公钥

构建的话,就会自动去gitlab上拉取项目到/var/lib/jenkins/workspace里面

Git Parameter(git参数构建插件)根据标签去发布

gitlab上需要打tag标签

 

 

Maven Integration plugin

  • jenkins宿主机安装maven  yum install maven -y
  • mvn -version
  • Maven home: /usr/share/maven
  • Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/jre
  • 后台配置 全局工具配置

构建maven项目,创建一个maven项目(代码在git@gitee.com:jokerbj/hello-maven.git)

构建maven的项目会用到国外代码,可以修改为国内,或者使用私服nexus

/usr/share/maven/conf/settings.xml 安装目录
159行
    <mirror>
         <id>alimaven</id>
         <mirrorOf>central</mirrorOf>
         <name>ali maven</name>
         <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

构建后的产物如何测试

  • tomcat https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz
  • /usr/local/apache-tomcat-9.0.41/conf/server.xml  直接修改8080
  • apache-tomcat-9.0.41/bin/startup.sh
  • cp /var/lib/jenkins/workspace/hello/target/hello-world-war-1.0.0.war /usr/local/apache-tomcat-9.0.41/webapps/ROOT.war
  • 或者将war包放在/usr/local/apache-tomcat-9.0.41/webapps/ROOT/里面解压出来也行

SonarQube Scanner for Jenkins(功能与Scanner效果一样)

服务端安装介绍(至少2C4G)

手动分析代码

https://www.cnblogs.com/jokerbj/p/10322129.html 

全局工具配置

系统配置

项目配置

DingTalk

系统管理--系统配置,配置一下钉钉,在项目中就可以调用这个配置,从而发送构建消息。

Parameterized Trigger plugin(触发器插件)

用于一个项目构建完成后触发另一个项目

 

Build Pipeline Plugin(流水线插件)以前的不安全,现在Blue Ocean

创建一个流水线项目,脚本形式

pipeline {
    agent any
    stages {
        stage('拉取代码'){
            steps {
                echo "pull code is ok"
            }
        }
        stage('代码质检'){
            steps {
                echo "check code is ok"
            }
        }
        stage('代码构建'){
            steps {
                echo "build code is ok"
            }
        }
        stage('代码部署'){
            steps {
                echo "deploy code is ok"
            }
        }
    }
}

scm形式,这个需要你在仓库的下创建一个Jenkinsfile文件,而文件内容就是上面内容

Gitlab Hook Plugin(gitlab勾子插件) 以前的不安全,现在是gitlab

 上图没有截全,下面还有一个高级,高级里面就是可以生成token

SSH(ssh插件)

jenkins集群

节点管理,新建节点

会自动在设置的目录下载jenkins的slave的jar包

分配到节点

按角色授权

Role-based Authorization Strategy(插件)

全局安全配置

管理用户

添加2个用户,java,php

系统配置里面 Manage and Assign Roles 管理分配角色

 

 

管理角色这里有2种角色,一种是全局的,一种是项目的

分配角色,这个就是针对用户的了

 

 

Gradle Plugin(插件)

https://gradle.org/releases/,下载仅二进制文件

全局工具配置

 

 

关于安卓打包sdk问题,先要下载commandlinetools

https://developer.android.com/studio 页面上,Command line tools only,这个https://developer.android.com/studio/command-line/sdkmanager,介绍tools里面sdkmanager安装sdk

sdkmanager "platforms;android-28"

 

完整构建安卓参考

https://www.cnblogs.com/jokerbj/p/11066846.html

 

 

posted @ 2019-01-20 21:00  liqianlong  阅读(286)  评论(0编辑  收藏  举报