60 lines
2.4 KiB
Groovy
60 lines
2.4 KiB
Groovy
pipeline {
|
||
agent any
|
||
tools {
|
||
nodejs 'node-v18.18.2' // 使用全局配置的Node.js工具
|
||
}
|
||
|
||
stages {
|
||
stage('Checkout') {
|
||
steps {
|
||
// 从Git仓库克隆项目
|
||
checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '4a774ecd-6ae3-4e27-a5e6-e6488b93b28a', url: 'https://gitea.1216.top/lxy/z-docs.git']])
|
||
}
|
||
}
|
||
|
||
stage('Install Dependencies') {
|
||
steps {
|
||
// 使用配置的Node.js版本安装项目依赖
|
||
sh '''
|
||
npm config set registry https://registry.npmmirror.com/
|
||
npm install
|
||
'''
|
||
}
|
||
}
|
||
|
||
stage('Build') {
|
||
steps {
|
||
// 执行构建步骤,比如打包
|
||
sh 'npm run build' // 假设你的package.json中有一个名为build的脚本用于打包
|
||
}
|
||
}
|
||
|
||
stage('deploy') {
|
||
steps {
|
||
sshPublisher(publishers: [sshPublisherDesc(
|
||
configName: 'u-xg', // SSH服务器的配置名称
|
||
transfers: [sshTransfer(
|
||
cleanRemote: false,
|
||
execCommand: '''
|
||
// 这里可以添加在远程机器上执行的其他命令
|
||
cd /var/www
|
||
rm zhub-docs -rf
|
||
mv z-docs zhub-docs
|
||
''',
|
||
execTimeout: 120000,
|
||
flatten: false, // 是否将源文件扁平化到单个目录中
|
||
makeEmptyDirs: true, // 是否创建远程目录结构
|
||
noDefaultExcludes: false,
|
||
patternSeparator: '[, ]+',
|
||
remoteDirectory: '/var/www/z-docs', // 远程机器上的目标目录
|
||
removePrefix: 'dist/', // 如果需要,从源文件名中移除的前缀
|
||
sourceFiles: 'dist/**' // 要传输的文件模式,这里表示dist目录及其所有内容
|
||
)],
|
||
usePromotionTimestamp: false,
|
||
useWorkspaceInPromotion: false,
|
||
verbose: true // 设置为true以获取更详细的日志输出
|
||
)])
|
||
}
|
||
}
|
||
}
|
||
} |