个人技术分享

说明:第一次使用jenkins生成pipeline片段,做个记录...

1.全局工具配置添加自定义node版本

2.系统管理添加前端应用部署服务器

2.1 点击高级选择账号密码验证方式,添加服务器的用户和密码

 3.系统管理--凭据--系统--全局凭据--添加自己的git凭据

 4.创建流水线类型任务

5.选择"hello world" 生成一个基本流水线框架,然后点击流水线语法,打开新页面

 5.1 在片段生成器里选择自定义的工具生成片段,然后复制过来

5.2填加拉取代码步骤,生成器选择git,选择分支与刚刚创建的凭据生成步骤片段

5.3 增加一个stage-->steps,把生成的shell命令加入进来

5.4 最后在片段生成器使用插件sshPublisher生成部署步骤

再添加一个部署stage-->steps 插入这个片段

添加一个变量参数模块示例:
使用parameters 生成片段

配置完成后在执行时可以选择相应的变量

 附完整流水线

pipeline {
    agent any
    // 选择node版本
    tools {
      nodejs 'Node16.20'
    }    
    parameters {
        choice(
            name: 'BRANCH_NAME',
            choices: ['master', 'dev'],
            description: '请选择要构建的分支'
        )
    }
   
    stages {
        // 从仓库获取代码
        stage('拉取代码') {
            steps {
              git branch: "${BRANCH_NAME}", credentialsId: 'hz', url: 'http://172.16.8.32:19980/pigx/sifn-ui.git'
            }
        }
        // 使用npm命令进行打包
        stage('执行构建') {
            steps {
                sh "node -v"
                sh "npm install"
                sh "npm run build"
            }
        }
        // 复制文件到目标服务器并发布
        stage('进行部署') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'xxxx服务器',
                transfers: [sshTransfer(cleanRemote: false, excludes: '', 
                execCommand: 'nginx -s reload', execTimeout: 120000, flatten: false, 
                makeEmptyDirs: false, noDefaultExcludes: false, 
                patternSeparator: '[, ]+', remoteDirectory: '/data/ui/', 
                remoteDirectorySDF: false, removePrefix: 'dist', sourceFiles: 'dist/**')],
                usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}