Skip to content

Jenkins

定义变量

添加 script块​​:因为使用了变量定义 def DEPLOY_MODULE_DIR,需要在 script块中

stage('upload to os') {
            steps {
                script {
                    def DEPLOY_MODULE_DIR = "${env.PROJECT_DIR}/${params.MODULE_NAME}"
                    echo "😊开始上传 ${DEPLOY_MODULE_DIR}/Dockerfile"
                    dir("${DEPLOY_MODULE_DIR}") {
                        bat "scp Dockerfile ubuntu@soft.shingi:/home/ubuntu/build/"
                    }
                }
            }
        }
pipeline {
    agent {
        label 'saq'  // ⚠️ 替换为你的本地 Agent 的 label
    }
    environment {
        PROJECT_DIR = 'C:/Users/hushun/Desktop/omni-portal-frontend'
        // DEPLOY_DIR  = '/usr/local/work_info'         
        DEPLOY_DIR  = '/home/shingi/cs/'   
    }
stages {
        stage('本地打包') {
            steps {
                dir("${env.PROJECT_DIR}") {
                    powershell """
                        Compress-Archive -Path "${env.PROJECT_DIR}\\dist" -DestinationPath "${env.PROJECT_DIR}\\dist.zip" -Force
                    """
                }
            }
        }


    }   
}

定义参数

pipeline {
    agent any
    parameters {
        string(name: 'BRANCH', defaultValue: 'main', description: 'Git 分支名')
        booleanParam(name: 'DEPLOY', defaultValue: true, description: '是否执行部署')
        choice(name: 'ENV', choices: ['dev', 'test', 'prod'], description: '部署环境')
        text(name: 'NOTES', defaultValue: '', description: '发布说明')
    }
    stages {
        stage('Example') {
            steps {
                echo "分支: ${params.BRANCH}"
                echo "部署环境: ${params.ENV}"
                echo "是否部署: ${params.DEPLOY}"
                echo "发布说明: ${params.NOTES}"
            }
        }
    }

    stage('InApp 部署') {
        when {
            expression { params.ENV == 'inapp' }
        }
        agent { label 'xx' }
        steps {
            echo "📤 删除历史..."
    }
}
☁️ 部署建议
如果你打算长期运行项目(博客 / API / 自动化脚本),建议直接用云服务器,会比本地稳定很多。
👉 查看云服务器(新用户优惠)