CICD

Jenkins

使用java开发的
默认端口8080

官网

https://www.jenkins.io/zh/

安装git

== 电脑要先安装git ==

  • centOS
sudo yum install git -y

安装

下载成功,是一个jenkins.war
地址:https://www.jenkins.io/zh/download/

linux版

离线安装

  • 腾讯云 用docker-compose启动,遇到了,没有git插件

  • 如果有各linux发现版安装文档,就跟着操作。
    centOS为例
    image

  • 执行到第4步,搜一下看有没有war文件

sudo find / -name "jenkins.war" 2>/dev/null

image

image

win版

启动

每次开机启动后,端口都是最开始设置那个

命令行(win、linux一样)

1:命令行
1)cmd,CD到jenkins.war所在目录,
2) 执行命令:java -jar jenkins.war
3)在打印控制台中,默认用户amin,会给出登录密码所在文件路径:
image
4)文件目录:
image

.exe方式启动(win版)

image

常见问题

命令行参数

  • 示例
# 用下面启动后,访问示例:http://127.0.0.1:9527/abc
--httpPort=9527
--prefix=/abc
  • 用docker 运行,才可以添加根路径前缀,
// docker-compose的yml方式
version: '3'

services:
  jenkins:
    image: jenkins/jenkins:lts-jdk17
    user: "root"
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - /data/jenkins17:/var/jenkins_home
    environment:
        # 请求路径前缀
      JENKINS_OPTS: "--prefix=/jenkins"
      JENKINS_ADMIN_PASSWORD: user123PWD++
      INITIAL_ADMIN_PASSWORD: user123PWD++

无法登录

电脑重启,端口为安装时配置那个,命令行启动war包,可以在命令行参数指定端口,默认8080
a:第一次,jenkins会生成一个uuid密码:
image

b:进去后在表单中自己创建用户,需自己记下来。
1:win系统可以,直接去除认证:
image

2: 再去,C:\ProgramData\Jenkins.jenkins\users目录把该用户目录和文件删除。
3:kill掉当前进程,在 Jenkins.war 目录 cmd后,java -jar Jenkins.war,此时端口为8080;
4:浏览器访问:http://localhost:8080/ 再输入用户名和密码试一下。
5:还不行就电脑重启,http://localhost:安装端口, 这时应该是不用密码了。

页面没有git

原因:git插件没有安装成功
解决方案:虚拟机中如果同版本有,可以把用户/.jenkins/plugins 插件目录压缩,替换
image

git地址爆红

image

  • 先 git --version 检查是否没装git

电脑需要安装git,centOS:

# 安装
sudo yum install git -y
# 检查安装是否成功
git --version

私有仓库用密码如何拉取

  • 1:安装 Git parameter插件
  • 2:在Jenkins的"Manage Jenkins" -> "Credentials"中添加一个新的凭据
  • 3:前面创建成功,则Job的配置--Git--Credentials下拉项,应该就多一个选择。

image
image
image
image
image
image

如何实现push代码,jenkins自动构建

gitee

码云文档地址:https://gitee.com/help/articles/4193#article-header0

  • 1: jenkins 安装gitee插件
    image

  • 2:配置项目gitee的webhook
    image

  • 3: gitee该仓库,填写jenkins的url和密码
    image

代码拉去

1:建一个任务
image

2-1:配置git地址
image
2-2: 需要密码的话,填好后,需要选中:
下拉为空,则看 常见问题--私有仓库用密码拉取
image

  1. 可选-配置密码
    如仓库为公共仓库,可跳过
    image

  2. 手动填写正确分支名
    image

代码打包

1:点击“配置”
image
2:以脚本方式打包
win就选bat,linux就选shell;
image

流水线示例

后端示例

image

点击查看代码
pipeline {
    agent {
        label 'test-176'
    }
    stages {
        
       stage('检出') {
            steps {
                git branch: 'test',credentialsId: '7175b328-a2d4-4c55-ac4a-3b1583ae1502', url: 'http://120.240.8.64:8090/jf/demo.git'
            }
        }
        stage('构建') {
            steps {
                sh ' /home/jf/data/tool/apache-maven-3.6.3/bin/mvn clean package -Dmaven.test.skip=true'
            }
        }
        
        stage('停止应用') {
            steps {
               sh '''#!/bin/bash
                PID=$(ps -ef|grep -w jf-server.jar|grep -v grep|awk \'{print $2}\')
                if [[ -n $PID ]];then
                echo "杀死进程${PID}"
                kill -9 $PID
                fi
                sleep 1
                '''
            }
        }
    
    }
}

前端示例

image

点击查看代码
pipeline {
    agent {
        label 'test-176'
    }
    stages {
        
        stage('检出') {
            steps {
                git branch: 'test', credentialsId: '7175b328-a2d4-4c55-ac4a-3b1583ae1502', url: 'http://120.240.8.64:8090/lg-group/lg-scrm-web.git'
            }
        }
        
         stage('构建') {
            steps {
                sh  '''sudo npm  run  build:test
                    '''
            }
        }
        
        stage('部署') {
            steps {
                sh '''cd ../
                sh lg-scrm-web-start.sh'''
            }
        }
    }
}

lg-scrm-web-start.sh具体内容

#!/bin/bash
sudo rm -rf /home/loctek/data/web/lg-scrm-web/*
echo '删除目录/home/loctek/data/web/lg-scrm-web文件'
sudo cp -r /home/loctek/data/jenkins/workspace/workspace/lg-scrm-web-test/dist-pro/* /home/loctek/data/web/lg-scrm-web
echo '将目录lg-crm-web/dist/复制到/home/loctek/data/web/lg-scrm-web'

gitLab

win版

posted @   jf666new  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示