jenkins(三):jenkins配置流水线任务

时间:2025-04-06 16:13:46

文章目录

      • 环境
      • pipeline
      • 建立任务,Pipeline Script方式
      • gitlab http方式
      • gitlab ssh方式
      • 建立任务,Pipeline script from SCM方式

环境

主机名 IP
jenkis 10.20.80.96
jenkis-agent 10.20.80.95
gitlab 10.20.80.91
code 10.20.80.93

pipeline

首要条件:jenkins需要安装git、pipeline插件

  1. Pipeline Script方式
  2. Pipeline script from SCM方式

建立任务,Pipeline Script方式

  1. 新建任务,选择pipeline
  2. 流水线中,编写脚本
    定义:Pipeline Script
# 脚本内容
pipeline {
    agent {
      label 'jenkins-agent-95'
    }

    stages {
        stage('检测环境') {
            steps {
                echo '检测环境'
                sh label: '', script: '''java -version
                mvn -v
                git version
                docker -v'''
            }
        }
        stage('拉取代码') {
            steps {
                echo '拉取代码'
            }
        }
        stage('编译构建') {
            steps {
                echo '编译构建'
            }
        }
        stage('部署项目') {
            steps {
                echo '部署项目'
            }
        }
    }
}

gitlab http方式

  1. 添加凭据
    类型:Username with password
    用户名:luxun
    密码:12345678
    描述:gitlab-95-http

  2. 流水线语法中,选择check out
    SCM:Git
    Repository URL:填写gitlab项目http地址
    Credentials:选择刚刚创建的http方式凭据
    Branches to build:指定分支

  3. 生成流水线脚本

# 修改拉取代码部分脚本
stage('拉取代码') {
    steps {
        echo '拉取代码'
        checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'c44dbd78-c248-4e6e-a1b0-6efd819994ae', url: 'http://10.20.80.91/lx/']]])
    }
}

gitlab ssh方式

gitlab(10.20.80.91)免密登录项目代码运行服务器(10.20.80.93)

# 在93上生成私钥
ssh-keygen -t rsa
# 查看公钥信息,并复制
cat /root/.ssh/id_rsa.pub
# 在gitlab上配置公钥
点击`右上角管理员`旁边小三角 -> `settings` -> `SSH Keys`,然后把公钥复制进去,`Add Key`

# 在jenkins上配置凭据
`添加凭据`
`类型`:SSH Username with private key
`用户名`:luxun
`密码`:12345678
`描述`:code-93-ssh
选中`Enter directly``Add`,把93的私钥粘贴进去
`保存`

# 去生成流水线脚本
`流水线语法`中,选择`check out`
`SCM`:Git
`Repository URL`:填写gitlab项目ssh地址
`Credentials`:选择刚刚创建的ssh方式凭据
`Branches to build`:指定分支

# 修改拉取代码部分脚本
stage('拉取代码') {
   steps {
       echo '拉取代码'
       checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '3abd05fa-3c33-4086-8220-f23de9e5d552', url: 'ssh://git@10.20.80.91:222/lx/']]])
   }
}

建立任务,Pipeline script from SCM方式

先复制Pipeline Script方式生成的脚本
在项目的根目录新建Jenkinsfile,把脚本内容复制进去
定义:Pipeline script from SCM
SCM:Git
脚本路径:Jenkinsfile

# Jenkinsfile
pipeline {
    agent {
      label 'jenkins-agent-95'
    }

    stages {
        stage('检测环境') {
            steps {
                echo '检测环境'
                sh label: '', script: '''java -version
                mvn -v
                git version
                docker -v'''
            }
        }
        stage('拉取代码') {
            steps {
                echo '拉取代码'
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '3abd05fa-3c33-4086-8220-f23de9e5d552', url: 'ssh://git@10.20.80.91:222/lx/']]])
            }
        }
        stage('编译构建') {
            steps {
                echo '编译构建'
            }
        }
        stage('部署项目') {
            steps {
                echo '部署项目'
            }
        }
    }
}