智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
2025-11-23 16:57:46 版本 : 7.8 使用Pipeline正式发布
作者: 文艺范儿 于 2025年11月23日 发布在分类 / DevOps / jekins 下,并于 2025年11月23日 编辑
 历史版本

备注 修改日期 修改人
创建版本 2025-11-23 16:57:46[当前版本] 文艺范儿

7.8 使用Pipeline正式发布

1. 新建任务

点击 "新建任务"

输入任务名称pipeline_deploy_game,选择 "Pipeline"

点击 "确定"

2. 配置参数化构建

在 "General" 部分勾选 "This project is parameterized" #此项目是参数化的

添加 Choice Parameter :

Name: action

Choices: deployrollback(每行一个)

粘贴图片

添加 String 参数:

Name: git_version

Default Value:v1.0.1

粘贴图片

3. 编写shell脚本

[root@201-jenkins ~]# cd /home/deploy/scripts/
[root@201-jenkins scripts]# vim pipeline_deploy_game.sh 
[root@201-jenkins scripts]# cat pipeline_deploy_game.sh
#!/bin/bash

# 修复版部署脚本
CODE_DIR=$(pwd)
WEB_DIR="/home/deploy/nginx/html/"
WEB_IP="10.0.0.204"

# 设置默认值(如果环境变量未设置)
action=${action:-"deploy"}
git_version=${git_version:-"unknown"}
CODE_DIR=${CODE_DIR:-$(pwd)}

echo "=== 部署脚本开始执行 ==="
echo "动作: $action"
echo "版本: $git_version"
echo "代码目录: $CODE_DIR"

get_code_tar(){
    echo "打包代码: web-${git_version}.tar.gz"
    cd $CODE_DIR && tar zcf /opt/web-${git_version}.tar.gz ./*
}

scp_code_web(){
    echo "传输代码到服务器..."
    scp /opt/web-${git_version}.tar.gz $WEB_IP:$WEB_DIR
}

code_tarxf(){
    echo "解压代码到服务器..."
    ssh $WEB_IP "cd $WEB_DIR && mkdir -p web-${git_version} && tar xf web-${git_version}.tar.gz -C web-${git_version}"
}

ln_html(){
    echo "创建软链接..."
    ssh $WEB_IP "cd $WEB_DIR && rm -rf game && ln -sf web-${git_version} game"
    echo "✅ 软链接创建完成: game -> web-${git_version}"
}

main(){
    echo "执行部署流程..."
    get_code_tar
    scp_code_web
    code_tarxf
    ln_html
}

# 修复条件判断语法 - 添加双引号和空格
if [ "$action" = "deploy" ]; then
    main
elif [ "$action" = "rollback" ]; then
    echo "执行回滚操作..."
    ln_html
else
    echo "错误: 未知的操作类型: $action"
    echo "用法: action=deploy|rollback git_version=版本号 $0"
    exit 1
fi

echo "=== 部署脚本执行完成 ==="
##注意一定要添加执行权限
[root@201-jenkins scripts]# chmod +x pipeline_deploy_game.sh


4. 配置 Pipeline

在 Pipeline 部分选择 "Pipeline script"

pipeline {
    agent any
    
    parameters {
        choice(
            name: 'action',
            choices: ['deploy', 'rollback'],
            description: '操作类型:部署或回滚'
        )
        string(
            name: 'git_version',
            defaultValue: 'v1.0.1',
            description: 'Git标签版本号(如:v1.0.0)'
        )
    }
    
    environment {
        DEPLOY_SCRIPT = '/home/deploy/scripts/pipeline_deploy_game.sh'
        WEB_IP = '10.0.0.204'
        GIT_REPO = 'git@10.0.0.200:ops/game.git'
    }
    
    stages {
        stage('清理工作空间') {
            steps {
                cleanWs()  // 使用Jenkins内置方法清理工作空间
            }
        }
        
        stage('获取代码') {
            steps {
                script {
                    // 方法1:使用checkout SCM(推荐)
                    checkout([
                        $class: 'GitSCM',
                        branches: [[name: "refs/tags/${params.git_version}"]],
                        extensions: [
                            [$class: 'CloneOption', 
                             depth: 1, 
                             noTags: false, 
                             shallow: true]
                        ],
                        userRemoteConfigs: [[
                            url: env.GIT_REPO
                        ]]
                    ])
                    
                    
                    // 验证代码状态
                    sh """
                        echo "✅ 当前代码状态:"
                        git describe --tags
                        git log -1 --oneline
                    """
                }
            }
        }
        
        stage('执行部署') {
            steps {
                sh """
                    echo "设置环境变量..."
                    export action="${params.action}"
                    export git_version="${params.git_version}"
                    export CODE_DIR="\$(pwd)"
                    
                    echo "执行部署脚本..."
                    bash -x ${env.DEPLOY_SCRIPT}
                """
            }
        }
    }
    
    post {
        always {
            echo "构建完成 - 操作: ${params.action}, 标签: ${params.git_version}, 结果: ${currentBuild.result}"
        }
    }
}

将上述完整的 Pipeline 脚本粘贴到文本框中

粘贴图片

5. 保存并构建测试

点击 "保存"

点击 "Build with Parameters"

选择操作类型和输入版本号

点击 "开始构建"

验证部署和回滚没有问题

粘贴图片

粘贴图片


历史版本-目录  [回到顶端]
    文艺知识分享平台 -V 5.2.5 -wcp