1、pipeline
简介:
Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins。Pipeline 提供了一组可扩展的工具,用于通过Pipeline DSL为代码创建简单到复杂的传送Pipeline
语法:
agent:表示Jenkins应该为Pipeline的这一部分分配一个执行者和工作区。
stage:描述了这条Pipeline的一个阶段
steps:描述了要在其中运行的步骤 stage
sh:执行给定的shell命令
在sh编写多条命令的写法:
sh """
npm install
npm run build
"""
详细的知识点请查阅官网:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
2、创建pipeline任务
git、nodejs和sshPublisherh的生成
点击图中的流水线语法
完整案例:
pipeline {
agent any
stages {
stage ("拉取vue项目") {
steps {
git credentialsId: 'e0939905-8a6b-445d-906d-fe469c2fcb8a', url: 'http://192.168.13.226:3000/zhush/topfus-guodian-ui.git'
}
}
stage ("Install") {
steps {
nodejs(configId: 'a4720548-c973-408b-ae68-a882421af9b5', nodeJSInstallationName: 'nodejs') {
sh """
npm install
npm run build
"""
}
}
}
stage ("tar.gz") {
steps {
sh "tar -zcvf ./shvuepipeline.tar.gz ./dist"
}
}
stage ("tuisong") {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'localserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd ~/shvuepipeline
tar -xvf shvuepipeline.tar.gz -C /data/sh/shvuepipeline/''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/shvuepipeline', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'shvuepipeline.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}