Jenkins之pipeline

安装插件

  • Pipeline

在这里插入图片描述

  • Pipeline: Stage View Plugin

在这里插入图片描述

创建任务

在这里插入图片描述

配置

  • demo

在这里插入图片描述

  • 开始实践
    在这里插入图片描述
    在这里插入图片描述

  • 拉取git仓库代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[url: 'http://178.119.30.133:8929/root/mytest.git']])
  • 通过SonarQube做质量检测
    在这里插入图片描述
sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.login=6c99d1bafedaa4bad18fd63fc9975515fbeb4eab'
  • 通过Docker制作自定义镜像

在这里插入图片描述

sh 'docker build -t ${JOB_NAME}:$tag .'
  • 将自定义镜像推送到Harbor

在这里插入图片描述

sh '''docker login -u $harborUser -p $harborPasswd $harborAddress
docker tag  $JOB_NAME:$tag  $harborAddress/$harborRepo/$JOB_NAME:$tag
docker push $harborAddress/$harborRepo/$JOB_NAME:$tag'''
  • 通过Publish Over SSH通知目标服务器

在这里插入图片描述

sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'deploy.sh $harborAddress $harborRepo $JOB_NAME $tag $port ', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

在这里插入图片描述

  • Jenkinsfile
pipeline {
   
    agent any

    environment {
   

        harborUser = 'admin'
        harborPasswd = 'Harbor12345'
        harborAddress = '178.119.30.133:80'
        harborRepo = 'repo'
    }

    stages {
   
        stage('拉取git仓库代码') {
   
            steps {
   
                checkout scmGit(branches: [[name: '$tag']], extensions: [], userRemoteConfigs: [[url: 'http://178.119.30.133:8929/root/mytest.git']])
            }
        }

        stage('通过SonarQube做质量检测') {
   
            steps {
   
                sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.login=6c99d1bafedaa4bad18fd63fc9975515fbeb4eab'
            }
        }
  
        stage('通过Docker制作自定义镜像') {
   
            steps {
   
                sh 'docker build -t ${JOB_NAME}:$tag .'
            }
        }

        stage('将自定义镜像推送到Harbor') {
   
            steps {
   
                sh '''docker login -u $harborUser -p $harborPasswd $harborAddress
                docker tag  $JOB_NAME:$tag  $harborAddress/$harborRepo/$JOB_NAME:$tag
                docker push $harborAddress/$harborRepo/$JOB_NAME:$tag'''
            }
        }

        stage('通过Publish Over SSH通知目标服务器') {
   
            steps {
   
                sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deploy.sh $harborAddress $harborRepo $JOB_NAME $tag $port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }

    }
}

相关推荐

  1. JenkinsPipeline 简单使用

    2024-01-18 22:10:02       77 阅读
  2. Jenkins 创建 Pipeline 项目

    2024-01-18 22:10:02       54 阅读
  3. Jenkins Pipeline 流水线

    2024-01-18 22:10:02       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 22:10:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 22:10:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 22:10:02       82 阅读
  4. Python语言-面向对象

    2024-01-18 22:10:02       91 阅读

热门阅读

  1. golang中make与new有什么区别?

    2024-01-18 22:10:02       52 阅读
  2. 1.17号网络

    2024-01-18 22:10:02       54 阅读
  3. 前端开发 5: Vue.js 框架

    2024-01-18 22:10:02       50 阅读
  4. CSS实现图片放大缩小的几种方法

    2024-01-18 22:10:02       56 阅读
  5. 使用elasticsearchdump迁移elasticsearch数据实战

    2024-01-18 22:10:02       49 阅读
  6. 微服务概述之微服务实践参考

    2024-01-18 22:10:02       59 阅读
  7. flink 1.18 sql demo

    2024-01-18 22:10:02       32 阅读
  8. Redis的key过期策略是怎么实现的

    2024-01-18 22:10:02       50 阅读