Jenkins持续集成入门到精通(一)

Jenkins详细教程 - 从入门到精通 本文摘要: 《Jenkins从入门到精通》是一份全面指南,系统讲解了Jenkins自动化工具的15个核心知识点。通过汽车工厂的类比,阐释了Jenkins作为CI/CD工具如何提升开发效率(构建时间从4小时缩短至30分钟)。内容涵盖: 1️⃣ 基础篇 核心概念:Job/Pipeline/Node 安装配置:Docker/Linux部署方案 首个任务:Hello World自由风格项目 2️⃣ 进阶篇 Pipeline设计:声明式与脚本式对比 插件生态:Git/Maven/Docker等200+插件 分布式构建 阅读详情

什么是持续集成

持续集成(Continuous Integration)简称C I 指的是 频繁(一天多次)将代码集成到骨干。
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。。它的核心措施是,代码集成到骨干之前必须通过自动化测试。只要有一个测试用例失败,就不能集成。
通过持续集成,团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发 很大一个部分都要归功于持续集成。
持续集成部署到流程在这里插入图片描述

根据持续集成的设计,代码从提交到生产,zeng ti包含以下流程:

  • 提交

第一步,开发者向代码仓库提交代码,所有后续的步骤都始于本地代码的一次提交(commit)。

  • 测试(第一轮)

代码仓库对commit操作设置了钩子(hook),只要提交代码或者合并进主干,就会启动自动化测试。
第一轮至少跑完单元测试。

  • 构建

通过第一轮测试,代码合并进主干,就可以交付了。
交付后,就进行构建(build),再进入第二轮测试,构建指的是将源码转换为可以运行的实际代码,比如安装依赖、配置各种资源(样式表、js脚本、图片等)等。
常用的构建工具有:Jenkins、Travis、Codeship等。

  • 测试(第二轮)

构建完成后,就进行第二轮测试,第二轮是全面测试,包含单元测试、集成测试,以自动化测试为主,新版本的每一个更新点都要测试到。

  • 部署

通过第二轮测试,代码就是可直接部署的版本,将这个版本的所有文件(jar,wer等)打包存档,发到生产服务器,生产服务器将其解包成本地的一个目录,再将运行路径的符号链接指向这个目录,然后重新启动应用。

  • 回滚

一旦之前的版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法是修改符号链接,指向上一个版本的目录。

持续集成到组成

  1. 一个自动构建过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预。
  2. 一个代码存储器,即需要版本控制软件来保障代码的可维护性,一半使用git或svn
  3. 一个持续集成服务器,Jenkins就是一个配置简单和使用方便的持续集成服务器。

持续集成的好处

  1. 降低风险,减少反复的操作
  2. 减少发布风险带来的问题
  3. 减少重复性工作
  4. 持续部署,可提供可部署的单元包
  5. 持续交付可供使用的版本
  6. 增强团队信息

Jenkins

在这里插入图片描述

作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持任何项目的构建、部署和自动化。
Jenkins 特点:

  1. 作为可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器或变成任何项目的持续交付中心。
  2. Jenkins 是一个独立的基于 Java 的程序,可以开箱即用,带有适用于 Windows、Linux、macOS 和其他类 Unix 操作系统的软件包。
  3. Jenkins 可以通过其 Web 界面轻松设置和配置,其中包括即时错误检查和内置帮助。
  4. 通过更新中心中的数百个插件,Jenkins 几乎可以与持续集成和持续交付工具链中的所有工具集成。
  5. Jenkins 可以通过其插件架构进行扩展,为 Jenkins 的功能提供近乎无限的可能性。
  6. Jenkins 可以轻松地在多台机器上分配工作,帮助更快地推动跨多个平台的构建、测试和部署。
    在这里插入图片描述

Jenkins 安装和持续集成环境配置

持续集成流程说明

  1. 首先 开发人员每天进行代码提交,提交到git仓库
  2. 然后Jenkins作为持续集成工具,私有git工具到git仓库拉去代码到集成服务器,再配合jdk,maven等软件完成代码编译,代码测试与审核,测试,打包等工作,在这个过程每一步出错,都重新再执行一次整个流程。
  3. 最后 Jenkins把7
  4. 生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。

服务器列表

名称ip安装到软件
代码托管服务器Gitlab-12.4.2
持续集成服务器Jenkins-2.190.3,jdk1.8,Maven3.6.2,git,SonarQube
应用测试服务器jdk1.8,tomcat8。5

Gitlab代码托管服务器安装

GitLab

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,部署在自己的服务器,可通过Web界面进行访问公开的或者私人项目。

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab 普通 安装
  1. 安装相关依赖包
sudo yum install -y curl policycoreutils-python openssh-server perl
  1. 启动ssh服务并设置为开启启动
sudo systemctl enable sshd
sudo systemctl start sshd
  1. 下载postfix,并设置postfix开启自启动,postfix支持gitlab发信功能
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
  1. 开放ssh以及http服务,然后重新加载防火墙列表
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
  1. 下载gitlab包,并安装
    下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
    安装:rpm -ivh gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm

  2. 修改gitlab配置

vi	/etc/gitlab/gitlab.rb
## 修改gitlab访问地址和端口,默认为80 ,我们修改为82
external_url 'http://192.168.66.100:82'
nginx['listen_port'] = 82
  1. 重载配置以及启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
  1. 把端口添加到防火墙(关闭防火墙就不用)
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload

启动成功后,看到修改管理员root密码的页面,修改密码后,然后登陆即可!
在这里插入图片描述

GitLab Docker 安装
Gitlab添加组、创建用户、创建项目

1) 创建组
使用管理员root创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同到开发即可实现对开发设置权限的管理。

  1. 创建组
    在这里插入图片描述
  2. 创建项目

在这里插入图片描述
2)创建用户

  1. 创建普通用户填写信息
    在这里插入图片描述
    在这里插入图片描述

Regular:普通用户可以访问他们的组和项目
Admin:管理员可以访问所有组、项目和用户,并可以管理此安装中的所有功能
2. 设置用户密码
在这里插入图片描述
在这里插入图片描述
3)给用户设置项目组权限
在这里插入图片描述
在这里插入图片描述

Guest: 可以创建issue、发布评论、不能读写版本库
Reporter: 可以克隆代码、不能提交,QA,PM可以赋予这个权限
Developer: 可以克隆代码、开发、提交、push,普通开发可以赋予这个q权限
Maintainer: 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目、核心开发可以授予这个权限
Owner: 可以设置项目访问权限-Visbility Level、删除项目、迁移项目、管理项目组成员、开发组组长可以赋予这个权限。

使用普通用户登陆
可以直接看到我们的组
在这里插入图片描述
4)在用户组中创建项目
刚才登陆的用户可以进行创建项目
在这里插入图片描述

Idea代码上传到gitlab

首先在idea 创建项目,并启动测试成功
在这里插入图片描述
然后给项目添加git
在这里插入图片描述
在这里插入图片描述
将项目添加到本地git仓库并提交
在这里插入图片描述
在这里插入图片描述
最后push到远程gitlab仓库

在这里插入图片描述
这里使用的地址使用ssh,之后会输入正好密码
在这里插入图片描述
然后进行push
在这里插入图片描述
上传成功!!!

Jenkins 软件安装 Docker的方式

  1. docker 拉取镜像
docker pull jenkins/jenkins
  1. 创建目录并赋予权限
    mkdir -p /var/jenkins_mount
    chmod 777 /var/jenkins_mount
  2. docker 创建并启动容器
docker run -d -p 10240:8080 -p 10241:50000 /
-v /var/jenkins_mount:/var/jenkins_home	/
-v /etc/localtime:/etc/localtime /
--name myjenkins jenkins/jenkins
端口 映射
-p 10240:8080 -p 10241:50000

挂载目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置:
-v /var/jenkins_mount:/var/jenkins_home

让容器使用和服务器同样的时间设置。
-v /etc/localtime:/etc/localtime

4.配置镜像加速
默认的Jenkins是使用国外的地址所以非常慢。

cd /var/jenkins_mount/updates

然后执行

sudo sed -i 's#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

这个博客写的非常详细
5. 重启容器
docker restart myjenkins

启动成功
在这里插入图片描述
6. 查看管理员密码

[root@localhost jenkins_mount]# cat /var/jenkins_mount/secrets/initialAdminPassword 
46f87f2955484e489f82262aaf58ed83

登陆成功!!
在这里插入图片描述
这里我们点击选择插件安装,然后选择无。 这里我们不进行插件安装,后续再安装
在这里插入图片描述

在这里插入图片描述
后续一直确定就完成了安装!

Jenkins 插件管理
安装中文包

首先进入我们插件管理
在这里插入图片描述
搜索 chinese ,然后选择中文包 下载
在这里插入图片描述
点击Go back to the。。。
在这里插入图片描述
重新打开后
在这里插入图片描述

Jenkins用户权限管理

我们利用Role-based Authorization Strategy 插件管理Jenkins用户权限
安装Role-based Authorization Strategy插件
在这里插入图片描述
然后进行全局安全权限配置
在这里插入图片描述

在这里插入图片描述

  1. 创建我们的角色权限管理
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 添加两个用户,分别给这两个用户进行 角色授权
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 测试我们的角色权限
    新建几个项目
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/7f92b4429c5e42d1b980914db052ff61.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29ubHlvbmVtaW5nbWluZw==,siz
    然后登陆xiaoming1用户发现。只能查看到xiaoming开头的项目任务
    t在这里插入图片描述
Jenkins 凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker 私有仓库密码等,以便于Jenkins可以和这些第三方等应用进行交互。

安装Credentials Binding 插件

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
在这里插入图片描述
下一步
在这里插入图片描述
下一步
在这里插入图片描述
选取凭证类型

在这里插入图片描述
一共有5种凭证
在这里插入图片描述

安装git插件和git工具

为了让Jenkins支持从gitlab拉取源码,需要安装git插件以及在CentOS上安装Git工具
git插件安装:在这里插入图片描述
CentOS上安装GIT工具
yum install git -y 安装
git --version 安装后查看版本

用户密码类型

添加凭证,使用gitlab的账号密码
在这里插入图片描述
在这里插入图片描述
创建项目给项目添加git 用户密码凭证
在这里插入图片描述
构建项目
在这里插入图片描述

SSH密钥类型

在这里插入图片描述
1)使用root用户生成公钥和私钥

ssh-keygen -t rsa
在/root/.ssh/ 目录保存了公钥和私钥
在这里插入图片描述
id_rsa : 私钥
id_rsa.pub :公钥
2)把生成的公钥放在gitlab中

  1. 在Jenkins机器上面查看公钥
[root@cn-mbp-c02v221ahv2f .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjVAyIBpy1kpFZGJgQ7bZS+PVS6ypKlCFuXDrosTCr8lD2/k5mKdlWS7llf4S+buQgB3l3h0jDxGRw3c+fBG/txbFzNiN0vAYX8Wx0N+12NccqhIdrrp0lGavLuEZqkdlL6Jz4o2jpJjyoRliPLY41ZhJ6eYS6kDuGvJcsN1PsOs7Dq3F2b43qfxTIjvJ3T6I5tLdtyr5qGosMEDCg0fJ/9DOE3pJscKCwWkf5+C07A4+NOmJQbh6+h1WplAbLdQOtn6e0eFcJOOyhaLRF++HPcLVMcdlI4KAB0OvU4rLyq5BGeyAF9nmGdpJm1Enz22cS0ic/rxh4J71n8lcbGg/D root@cn-mbp-c02v221ahv2f
  1. 到我们gitlab 上 添加公共ssh密钥
    在这里插入图片描述
    在这里插入图片描述
    3)把生成的私钥添加到Jenkins凭证中
    在这里插入图片描述
    在这里插入图片描述
    最后测试

创建一个项目并使用ssh方式
在这里插入图片描述
在这里插入图片描述
完成ssh类型拉去代码!!

安装Maven和配置
安装maven以及java

首先maven依赖java环境

 tar -zvxf jdk-8u301-linux-i586.tar.gz 
 tar -zvxf apache-maven-3.8.1-bin.tar.gz 

配置jdk和maven的环境

# java
export JAVA_HOME=/home/java/jdk1.8.0_301
export JRE_HOME=/home/java/jdk1.8.0_301/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

# maven
export MAVEN_HOME=/home/maven/apache-maven-3.8.1
export PATH=$MAVEN_HOME/bin:$PATH

执行 source /etc/profile 进行刷新文件

## 查看版本
java -- version
mvn -v

修改maven的配置文件下载使用阿里的

 <!-- 从阿里云镜像下载jar包 -->
  <mirrors>
	<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>
启动Jenkins 挂载java 以及 maven

之前的容器删除。

docker run -d -p 10240:8080 -p 10241:50000 \
-v /var/jenkins_mount:/var/jenkins_home \
-v /home/maven/apache-maven-3.8.1:/usr/local/maven \
-v /home/java/jdk1.8.0_301:/usr/local/java \
--name myjenkins jenkins/jenkins
全局工具配置jenkins关联JDK和Maven

然后配置Jenkins环境
在这里插入图片描述
修改jdk和maven配置
这里的JAVA_HOME 和MAVE
在这里插入图片描述
安装 maven 插件
Maven Integration plugin
在这里插入图片描述
创建项目并构建打包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打包成功!!

使用Docker 安装tomcat 并打包部署
安装

启动一个基础tomcat

docker run -d -p 8081:8080 mysql:8.5

cp tomcat文件到本地

 docker cp b5c948b981ec:/usr/local/tomcat/webapps.dist /home/tomcat/webapps/
 docker cp b5c948b981ec:/usr/local/tomcat/conf /home/tomcat/conf/
  docker cp b5c948b981ec:/usr/local/tomcat/logs /home/tomcat/logs/

停止并删除基础tomcat镜像

docker stop tomcat
docker rm tomcat

启动tomcat 容器并进行挂载

docker run -d -p 8088:8080 --name tomcat1 \
-v /home/tomcat/conf:/usr/local/tomcat/conf \
-v /home/tomcat/logs:/usr/local/tomcat/logs \
-v /home/tomcat/webapps:/usr/local/tomcat/webapps tomcat:8.5

配置tomcat用户
进入conf目录下,找到tomcat-users.xml文件,然后配置一些用户名即权限

<role rolename="tomcat"/> 
<role rolename="role1"/> 
<role rolename="manager-script"/> 
<role rolename="manager-gui"/> 
<role rolename="manager-status"/> 
<role rolename="admin-gui"/> 
<role rolename="admin-script"/> 
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>

在这里插入图片描述
下面再取到webapp目录下修改一个context文件,默认情况下,web的ui界面是看不到的,需要注释掉下面的这段配置即可

cd /home/tomcat/webapps/manager/META-INF

vi context.xml

在这里插入图片描述
再次启动tomcat之后,我们再次点击manage webapp,弹出需要验证用户名的界面
在这里插入图片描述

jenkins安装Deploy to container插件

可以想象一下,jenkins怎么才能将打好的jar包或者war包推送到指定的tomcat容器中启动运行呢?肯定需要在某个地方配置远程的tomcat容器地址,比如war包是放在webapp目录的地址,这样才可以吧?下面看具体的操作

搜索Deploy to container并安装
安装好之后配置项目

在这里插入图片描述
添加密钥
账号是tomcat 密码是tomcat

配置完保存

点击构建

在这里插入图片描述
最后就可以访问到我们的web项目了!

Jenkins持续集成,原来那么简单 (1)软件开发生命周期软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合。如下图所示 :需求需求分析这是生命周期的第一阶段,根据项目需求,团队执行一个可行性计划的分析。项目需求可能是公司内部或者客户提出的。这阶段主要是对信息的收集,也有可能是对现有项目的改善和重新做一个新的项目。还要分析项目的预算多长,可以从哪方面受益及布局,这也是项目创建的目标。设计。 阅读详情

相关推荐

持续集成工具Jenkins的使用之安装篇(一)

Jenkins持续集成

雨滴测试博客 2692

Jenkins持续集成入门到精通-一篇就够

一、Jenkins安装和持续集成环境配置一、Jenkins安装和持续集成环境配置1)首先,开发人员每天进行代码提交,提交到Git仓库,测试人员进行合并;2)然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDKMaven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。3)最后,Jenkins把生成的jar或war。

qq_42114233的博客 4817

博途AI助手演示,完成简单且重复的梯形图代码,并导入到博途

自写个博途AI助手,下面演示AI帮我生成完善多个模拟量输入转换的代码,

gsjkwg的博客 1525

Jenkins从入门到精通,构建高效自动化流程

Jenkins是一款流行的开源自动化服务器,它可以帮助开发者和运维团队实现持续集成(CI)和持续部署(CD)。自从2004年诞生以来,Jenkins已经走过了近二十年的发展历程,成为了软件开发领域不可或缺的工具之一。在agent部分,我们可以定义构建环境。any表示使用任何可用的构建节点,但也可以指定具体的节点或标签。

邓邓子的博客 2408

Android Qcom Display学习(十一)

该系列文章总目录链接与各部分简介:本章主要是基于MIPI Payload传输接口的学习,包括Generic和DCS的接口不同。底层都是基于去封装的,下面第一部分调用原生接口,第二部分分析高通是如何进行读写操作的。

Android驱动开发 3181

大地坐标系与经纬度转换(一):大地坐标系简介

一、大地坐标系 大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系。地面点的位置用大地经度、大地纬度和大地高度表示。 二、地心坐标系 ...

qq_42895926的博客 6万+

Jenkins持续集成学习笔记(2)

Jenkins安装和持续集成环境配置 持续集成流程说明 首先,开发人员每天进行代码提交,提交到Git仓库 然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK,Maven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。 最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。 服务器列表 虚拟机统一采用CentOS7。 虚拟机下载与安装参考

qq_22075913的博客 1160

使用TMS320F28335控制四位共阳数码管

简要阐述利用F28335控制四位共阳数码管的整个过程,包括原理、思路、部分代码以及调试过程。

liujunhaozuishuai的博客 2658

Jenkins持续集成入门到精通

Jenkins持续集成,gitlab+Jenkins+sonarqube+docker+k8s

out_of_it_farmer的博客 3581

Open3D 计算点云的主曲率

本文介绍了点云主曲率计算的方法与实现。通过分析曲面局部几何形状的主曲率(最大和最小方向),基于法线构建投影矩阵和协方差矩阵,使用奇异值分解计算曲率。代码采用Open3D实现,包括点云加载、法线估计、邻域搜索和曲率映射可视化功能。系统支持交互式点云文件选择,将曲率值映射为色彩进行直观展示,为点云处理中的特征提取和分割任务提供基础几何特征。实现过程包含了法线去中心化、协方差矩阵构建和特征值归一化等关键步骤,完整展示了从理论到实践的曲率分析流程。

点云侠的博客 543

【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径

Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 893

Jenkins 从入门到精通:构建持续交付的自动化利器

引言Jenkins是一个强大的开源自动化工具,广泛用于持续集成和持续交付。本篇博文将带您从初级入门一直到高级应用,详细了解Jenkins的安装、基础配置以及高级功能的使用。1. 安装与配置 Jenkins1.1 安装 Java在安装 Jenkins 之前,首先确保系统上已经安装了Java。可以通过以下命令安装OpenJD...

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 945

【高级雷达感知与学习】 第十三章 可解释性与物理–感知融合(Physics-Informed ML)

本文提出了一种面向雷达感知的物理约束学习方法,将雷达物理先验(RCS、SNR、距离衰减)嵌入神经网络,解决纯数据驱动模型的样本效率低、泛化能力弱和决策不可信问题。通过三种融合范式(混合建模、物理正则化、PINNs)实现机理与数据协同建模,并设计了物理引导显著图解决雷达可解释性语义错位问题。实验表明,物理约束可提升40%样本效率,增强低信噪比场景鲁棒性。代码实现包含物理正则化损失、可解释性分析和消融实验,为雷达感知系统提供了可迁移的工程范本。

VectorShift的博客 185

Jenkins持续集成入门到实战

文章目录1. 传统网站的部署2. 主流网站的部署流程和方法3. Jenkins持续平台安装4. Jenkins持续集成MAVEN5. Jenkins持续集成JOB工程设置6. Jenkins持续集成网站构建实战7. Jenkins持续集成自动化部署8. Jenkins持续集成插件设置9. Jenkins持续集成邮件设置10. Jenkins持续集成多实例设置11. Jenkins持续集成Ansi...

NiuXL的编程技术网络日志 735

Calibre:LVS 快速debug short/open技巧

用Fix Suggestion和Short Isolate两种方法debug LVS问题

m0_61544122的博客 7458

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jenkins持续集成部署

Jenkins是一个开源的自动化服务器,它支持各种自动化任务,如构建、测试和部署软件项目。Jenkins提供了丰富的插件和灵活的配置选项,使得开发者能够根据自己的需求定制CI/CD流程。同时,Jenkins还提供了易于使用的Web界面和强大的脚本支持,使得CI/CD流程的管理和监控变得更加简单。登陆后,会出现如下页面,这里涉及到jenkins的插件安装,建议选择“安装推荐的插件”,点击“安装推荐的插件”后,进入“新手入门”页面,等待全部插件安装成功即可。

2401_83794506的博客 2414

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Jenkins入门(一)

25.1 CI/CD介绍 互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段: 编码 → 构建 → 集成 → 测试 → 交付 → 部署 正如你在上图中看到,持续集成(Continuous Integration)、持续交付(Continuous Delivery)和持续部署(Continuous Deployment)有着不同的软件自动化交付周期。 持续集成(C...

变成习惯 31万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Jenkins】持续集成环境实战

《Jenkins持续集成入门到精通》 1、持续集成及Jenkins介绍 2、Jenkins安装和持续集成环境配置 3、Jenkins构建Maven项目 4、Jenkins+Docker+SpringCloud微服务持续集成 5、基于Kubernetes/K8S构建Jenkins微服务持续集成平台 一、持续集成及Jenkins介绍 软件开发生命周期 软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合。如下图所示 :

努力充实,远方可期 1万+

持续集成工具Jenkins(一)

在传统的软件开发过程中,集成通常发生在每个人都完成了各自的工作之后,集成也可以理解为团队里的大家完成自己负责的模块后,将各个子模块集成为一个可以完成整体功能的完整模块。若不想使用上述的密码,我们也可以自己定义一个随机字符串,进入jenkins界面,点击右上角admin,点击设置,下拉找到“密码”,自己定义一个随机字符串,将自己定义的随机字符串保存下来,位置自由,若以后忘记了密码,可在 /var/lib/jenkins/users/admin 文件中,将字符串修改成自己定义的字符串,这样密码就修改成功了。

2301_82330629的博客 1640

《Jenkins持续集成入门到精通-入门篇》

《Jenkins持续集成入门到精通-入门篇》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Jenkins持续集成入门到精通-入门篇》《Jenkins持续集成入门到精通-入门篇》1、持续集成及Jenkins介绍1.1 软件开发生命周期1.2 软件开发瀑布模型1.3 软件的敏捷开发1.4 什么是持续集成1.5 持续集成的组成要素1.6 Jenkins介绍2. Jenkins安装和持续集成环境配置2.1 持续集成流程说明2.2 Gitlab代码托管服务器安装2.2.1 Gitlab

weixin_43695916的博客 1384

持续集成之jenkins实践教程

Jenkins是当下持续集成领域无可取代的工具,此系列教程用于介绍如何使用Jenkins以及与其他工具结合使用的方法。

知行合一 止于至善 6613

Jenkins+Docker持续集成

本节内容: Jenkins介绍 安装部署Jenkins Jenkins构建maven风格的job Jenkins邮件通知设置 Sonar Jenkins与Docker结合 一、Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 二、安装部署Jen...

artaganan8的博客 4万+

《Jenkins持续集成入门到精通-进阶篇》

《Jenkins持续集成入门到精通-进阶篇》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Jenkins持续集成入门到精通-进阶篇》《Jenkins持续集成入门到精通-进阶篇》4. Jenkins+Docker+SpringCloud微服务持续集成(上)4.1 Jenkins+Docker+SpringCloud持续集成流程说明4.2 SpringCloud微服务源码概述4.3 本地部署4.3.1 本地部署(1)-SpringCloud微服务部署4.3.2 本地部署(1)-前

weixin_43695916的博客 806

Jenkins持续集成

Jenkins持续集成 1、介绍、环境搭建 什么是Jenkins? Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件,支持自定义工具集、多种交付通道 CI:Continuous integration,持续集成,一种软件开发实践。每次集成(源代码变更后)都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误,大大减少集成问题。持续集成过程:先把代码放入git,Jenkins从git获取代码进行构建、测试、生成结果再返回给客户端 CD:Con

weixin_42724501的博客 1万+

Jenkins+gitlab持续集成

之前我们已经部署了k8s和harbor仓库,本次来部署下jenkins和gitlab实现持续集成。持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。流程在现在的开发模式中,一般的项目,协同开发是离不开的,这就涉及到多个开发人员编写处理自己负责的功能模块或者某些开发人员共同负责一个模块。

cherryの技术文档 6005
上一篇: Docker Compose快速入门
下一篇: Package kubectl-1.18.0-0.x86_64 already
小明 go
博客等级 码龄8年 6粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值