jenkins 流水线比较简单直观的

发布于:2025-07-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

//全篇没用自定义变量

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
                        )
                    ]
                )
            }
        }
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到