ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

jenkins 流水线比较简单直观的

2026/8/11 21:44:56 拓冰建站 浏览量
jenkins 流水线比较简单直观的

//全篇没用自定义变量

pipeline {
agent any
// 使用工具自动配置Node.js环境
tools {
nodejs 'nodejs22'  // 需在Jenkins全局工具中预配置该名称的Node.js安装
}

//下面拉取代码通过的是流水线片段生成的
stages {
stage('Checkout Code') {
steps {
git branch: 'release-v1.2.6',
credentialsId: 'gitc1', //全局凭证生成的
url: 'http://192.168.1.9/hhh/xxx-web.git'
}
}

stage('Inspect Workspace') {
steps {
script {
echo "=== 当前工作目录信息 ==="
echo "工作空间路径: ${env.WORKSPACE}"

// Linux/Unix 系统
sh '''
echo "---- 目录结构 ----"
ls -la
echo "---- 磁盘空间 ----"
df -h .
echo "---- 内存信息 ----"
free -h
rm -rf dist
'''

/* Windows 系统使用(如需)
bat '''
echo ---- 目录结构 ----
dir
echo ---- 磁盘空间 ----
wmic diskdrive get size
'''
*/
}
}
}
stage('编译') {
steps {
script {
// 检查Node.js环境
sh """
echo "===== Node.js版本 ====="
node -v
npm -v
pnpm -v
pnpm install
pnpm build:test
ll
"""

// 安装依赖并构建
//withEnv(["HOME=${env.WORKSPACE}"]) {  // 解决某些npm权限问题
//    sh """
//        npm config set registry ${env.NPM_REGISTRY}
//        npm install --verbose
//        npm run build
//        
//        echo "===== 构建产物 ====="
//        ls -la dist/
//    """
}
}
}

stage('SSH 上传') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'jh206测试',
transfers: [
sshTransfer(
sourceFiles: 'dist/**',
removePrefix: '',
remoteDirectory: "/www/wwwroot/lsom",
execCommand: """
# 修复权限问题
ls
# chown -R www-data:www-data ${env.REMOTE_DIR}
# find ${env.REMOTE_DIR} -type d -exec chmod 755 {} \\;
# find ${env.REMOTE_DIR} -type f -exec chmod 644 {} \\;
"""
)
],
verbose: true
)
]
)
}
}
}
}