(十四)devops持续集成开发——jenkins流水线使用pipeline方式发布项目

前言

本节内容我们使用另外一种方式pipeline实现项目的流水线部署发布,Jenkins Pipeline是一种允许以代码方式定义持续集成和持续交付流水线的工具。通过Jenkins Pipeline,可以将整个项目的构建、测试和部署过程以脚本的形式写入Jenkinsfile中,实现对整个流程的可视化管理和控制。在 Jenkins Pipeline中,可以定义不同的阶段(stage)、步骤(step)、参数(parameters)、环境变量(environment variables)等,以实现自动化构建、测试和部署过程。还可以通过条件判断、循环等控制结构来实现流水线的灵活控制。

正文

①创建一个流水线pipeline方式的项目

②填写描述信息和构建的策略,此步骤可跳过

③ 使用流水线的Pipeline script方式构建一个maven项目

  • 构建脚本

    pipeline {
    agent any

    复制代码
      stages {
          stage('拉取代码') {
              steps {
                  echo '========================拉取代码========================'
                  checkout([
                      $class: 'GitSCM',
                      branches: [[name: '*/master']],
                      doGenerateSubmoduleConfigurations: false,
                      extensions: [],
                      submoduleCfg:[],
                      userRemoteConfigs: [[credentialsId: 'gitee', url:'https://gitee.com/northcangap/ht-atp.git']]
                  ])
              }
          }
          stage('编译构建') {
              steps {
                  echo '========================编译构建========================'
                  sh 'cd ht-atp-security && mvn clean package -Dmaven.test.skip=true'
              }
          }
          stage('部署安装') {
              steps {
                  echo '========================部署安装========================'
                  sshPublisher(
                      continueOnError: false,
                      failOnError: true,
                      publishers: [
                          sshPublisherDesc(
                              configName: "ht-atp",
                              transfers: [
                                  sshTransfer(
                                      sourceFiles: "ht-atp-security/target/*.jar",
                                      removePrefix: "ht-atp-security/target",
                                      remoteDirectory: "/pipeline",
                                      execCommand: "cd /ht/pipeline && sh start.sh",
                                      execTimeout: 12000
                                  )
                              ]
                          )
                      ]
                  )
              }
          }
      }

    }

  • 使用git拉取代码
  • 使用maven命令构建项目
  • 使用sshPublisher组件将构建好的项目发布到远程服务器

④ 点击立即构建,构建该流水线项目

⑤查看构建的流水线项目日志

⑦ 访问项目

⑧方式二:流水线使用Pipeline script from SCM方式创建,配置源码地址

⑨ 配置Jenkinsfile流水线脚本路径

⑩ 在项目的源码路径下创建一个Jenkinsfile文件,文件内容同上,并上传到源码库,构建时,会使用此文件完成流水线项目的发布

⑪同样也可以部署发布成功,一般更推荐使用方式二实现

⑫ 关于pipeline的流水线语法可参考其提供的DSL流水线语法

⑬ 前端vue项目的部署脚本

复制代码
pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                echo '========================拉取代码========================'
                checkout([
                    $class: 'GitSCM',
                    branches: [[name: '*/master']],
                    doGenerateSubmoduleConfigurations: false,
                    extensions: [],
                    submoduleCfg:[],
                    userRemoteConfigs: [[credentialsId: 'gitee', url:'https://gitee.com/northcangap/ht-atp.git']]
                ])
            }
        }
        stage('编译构建') {
            steps {
                echo '========================编译构建========================'
                sh 'cd ht-atp-app && npm i -f && npm run build'
            }
        }
        stage('部署安装') {
            steps {
                echo '========================部署安装========================'
                sshPublisher(
                    continueOnError: false,
                    failOnError: true,
                    publishers: [
                        sshPublisherDesc(
                            configName: "ht-atp",
                            transfers: [
                                sshTransfer(
                                    sourceFiles: "ht-atp-app/dist/**",
                                    removePrefix: "ht-atp-app/dist",
                                    remoteDirectory: "/pipeline/ht-app"
                                )
                            ]
                        )
                    ]
                )
            }
        }
    }
}

结语

至此,关于jenkins流水线使用pipeline方式发布项目的内容到这里就结束了,我们下期见。。。。。。

相关推荐
Luke~4 小时前
阿里云计算巢已上架!3分钟部署 Loki AI 事故分析引擎,SRE 复盘时间直接砍掉 80%
人工智能·阿里云·云计算·loki·devops·aiops·sre
热爱运维的小七7 小时前
加强服务器安全:Site24x7 的补丁与监控方案
it运维·devops·服务器监控
程序员老邢12 小时前
【技术底稿 10】16G Ubuntu 服务器手动部署 Ollama 0.20.4 全流程(避坑 HTTP2 错误)
服务器·ubuntu·ai·语言模型·devops
观测云14 小时前
AWS DevOps Agent 接入观测云最佳实践
aws·devops·可观测性·观测云
信创DevOps先锋1 天前
DevOps工具链选型新趋势:本土化适配与安全可控成企业核心诉求
运维·安全·devops
牛奶咖啡131 天前
DevOps自动化运维实践_ansible-playbook的应用
自动化·云计算·ansible·devops·playbook·playbook的常见使用示例·playbook变量主机命令
星河耀银海1 天前
云原生核心特性:容器化、微服务与DevOps的通俗解读
微服务·云原生·devops
企智汇-项目管理软件厂商1 天前
企智汇项目管理软件怎么样?企智汇软件全面解析:优势、服务、安全与价格深度评测!
大数据·运维·项目管理·devops·项目管理软件·项目管理系统·企业管理软件
牛奶咖啡134 天前
DevOps自动化运维实践_ansible-playbook的使用
运维·自动化·ansible·devops·playbook·playbook模块及其示例
q_30238195565 天前
告别kubectl命令地狱!MCP-K8s让AI成为你的智能运维助手
运维·人工智能·语言模型·chatgpt·kubernetes·文心一言·devops