Jenkins使用流水线自动构建并部署到华为CAE
环境准备
安装Jenkins、git、jdk11(新版本jenkins使用java11)、Apache Maven、KooCLI工具
- 安装KooCLI工具
链接: https://support.huaweicloud.com/qs-hcli/hcli_02_003.html - 安装Jenkins插件
插件名称 | 是否必须 | 说明 |
---|---|---|
Pipeline | 是 | 支持pipeline脚本语法 |
Pipeline: Basic Steps | 是 | 支持pipeline脚本语法 |
Pipeline: Build Step | 是 | 支持pipeline脚本语法 |
Pipeline: Stage Step | 是 | 支持pipeline脚本语法 |
Localization: Chinese (Simplified) | 是 | 简体中文语言包 |
- Jenkins全局工具配置与环境变量
环境变量的添加,此处省略
配置流水线构建任务
- 新建Jenkins项目
- 生成拉取项目的脚本代码
在新建jenkins项目中,移动到页面最底部,点击如下图所示流水线语法
保留这段脚本,待会儿使用。 - 流水线配置
在“流水线”页签,在下拉框选择“Pipeline script”。
配置流水线脚本,脚本如下
node {
// 定义代码仓地址
def git_url = 'http://100.85.122.207:8090/h30025614/test-demo.git'
// Gitlab凭据id
def credentials_id = '133b7c9a-eb6a-4484-84b3-c3509ed63df8'
// git代码仓库分支名称
def branch_name = 'main'
// maven安装的可执行文件绝对路径
def maven = '/root/app/maven/apache-maven-3.8.6/bin/mvn'
// deploy.sh 脚本存放绝对路径
def deploy_shell = '/root/jar/deploy.sh'
stage('Clone sources') {
//拉取代码部分,使用刚刚生成的流水线脚本
git branch: branch_name, credentialsId: credentials_id, url: git_url
}
stage('Build') {
// 构建镜像
sh "'$maven' clean install package -P '$profiles' -DskipTests"
sh "'$maven' package docker:build -DskipTests"
}
stage('deploy') {
// 执行脚本,使用构建的镜像上传到swr的镜像升级CAE组件,超时时间5分钟
sh "timeout 300s '$deploy_shell'"
}
}
deploy.sh脚本说明
参考华为官网文档: https://support.huaweicloud.com/bestpractice-cae/cae_05_0016.html
- 使用KooCLI工具中如果提示
可以通过如下方式解决,在命令前增加 ’echo Y | ‘
component_detials=`echo Y | C:/hcloud/hcloud CAE ShowComponent --cli-region="$region" --project_id="$project_id" --X-Enterprise-Project-ID="$enterprise_project_id" --X-Environment-ID="$environment_id" --application_id="$application_id" --component_id="$component_id"`
- 如果提示[USE_ERROR]配置文件不存在,请您执行
hcloud configure init
初始化配置
可通过如下命令先初始化配置
hcloud configure set ......