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


    前言

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

    正文

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

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

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

    - 构建脚本

    1. pipeline {
    2. agent any
    3. stages {
    4. stage('拉取代码') {
    5. steps {
    6. echo '========================拉取代码========================'
    7. checkout([
    8. $class: 'GitSCM',
    9. branches: [[name: '*/master']],
    10. doGenerateSubmoduleConfigurations: false,
    11. extensions: [],
    12. submoduleCfg:[],
    13. userRemoteConfigs: [[credentialsId: 'gitee', url:'https://gitee.com/northcangap/ht-atp.git']]
    14. ])
    15. }
    16. }
    17. stage('编译构建') {
    18. steps {
    19. echo '========================编译构建========================'
    20. sh 'cd ht-atp-security && mvn clean package -Dmaven.test.skip=true'
    21. }
    22. }
    23. stage('部署安装') {
    24. steps {
    25. echo '========================部署安装========================'
    26. sshPublisher(
    27. continueOnError: false,
    28. failOnError: true,
    29. publishers: [
    30. sshPublisherDesc(
    31. configName: "ht-atp",
    32. transfers: [
    33. sshTransfer(
    34. sourceFiles: "ht-atp-security/target/*.jar",
    35. removePrefix: "ht-atp-security/target",
    36. remoteDirectory: "/pipeline",
    37. execCommand: "cd /ht/pipeline && sh start.sh",
    38. execTimeout: 12000
    39. )
    40. ]
    41. )
    42. ]
    43. )
    44. }
    45. }
    46. }
    47. }

    - 使用git拉取代码

    - 使用maven命令构建项目

    - 使用sshPublisher组件将构建好的项目发布到远程服务器

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

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

    ⑦ 访问项目

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

    ⑨ 配置Jenkinsfile流水线脚本路径

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

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

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

    ⑬ 前端vue项目的部署脚本

    1. pipeline {
    2. agent any
    3. stages {
    4. stage('拉取代码') {
    5. steps {
    6. echo '========================拉取代码========================'
    7. checkout([
    8. $class: 'GitSCM',
    9. branches: [[name: '*/master']],
    10. doGenerateSubmoduleConfigurations: false,
    11. extensions: [],
    12. submoduleCfg:[],
    13. userRemoteConfigs: [[credentialsId: 'gitee', url:'https://gitee.com/northcangap/ht-atp.git']]
    14. ])
    15. }
    16. }
    17. stage('编译构建') {
    18. steps {
    19. echo '========================编译构建========================'
    20. sh 'cd ht-atp-app && npm i -f && npm run build'
    21. }
    22. }
    23. stage('部署安装') {
    24. steps {
    25. echo '========================部署安装========================'
    26. sshPublisher(
    27. continueOnError: false,
    28. failOnError: true,
    29. publishers: [
    30. sshPublisherDesc(
    31. configName: "ht-atp",
    32. transfers: [
    33. sshTransfer(
    34. sourceFiles: "ht-atp-app/dist/**",
    35. removePrefix: "ht-atp-app/dist",
    36. remoteDirectory: "/pipeline/ht-app"
    37. )
    38. ]
    39. )
    40. ]
    41. )
    42. }
    43. }
    44. }
    45. }

    结语

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

  • 相关阅读:
    HTML制作一个汽车介绍网站【大学生网页制作期末作业】
    3. 自然语言处理NLP:具体用途(近义词类比词;情感分类;机器翻译)
    【毕业设计】22-基于单片机的智能温度计的系统设计(原理图工程+仿真工程+源代码+仿真视频+答辩论文+答辩PPT)
    Android BottomSheet总结
    计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)
    对拍系列 v1.0
    2022最新iOS证书(.p12)、描述文件(.mobileprovision)申请和HBuider打包及注意注意事项
    pandas连接oracle数据库并拉取表中数据到dataframe中、筛选当前时间(sysdate)到一天之前的所有数据(筛选一天范围数据)
    docker安装redis详细教程
    PHP 脚本,其中包含一个函数,该函数会从给定的字符串列表中随机选择一个字符串并返回
  • 原文地址:https://blog.csdn.net/yprufeng/article/details/136173767