Jenkins Qt项目 自动化构建初步使用
最近发现了一个CI/CD 自动化构建的工具 Jenkins,可以提交了git 之后自动编译创建,功能非常强大。我是用自己的主机做的一个服务器编译,不是用的类似 gitee go 或者 github action 之类的。后续在探讨这两个工具的使用
1.下载Jenkins 安装 ,一直下一步即可,中途可能会要求安装java 的jdk ,没有的话直接去官网下载,安装的时候 记住账号密码,等下登录的时候要使用的
2.登录Jenkins的网页,http://localhost:8080/ 输入账号密码登录进去,第一次使用 下载一下推荐的插件,另外 qt 项目还需要下载cmake 以及 gitee 插件 (我用的是gitee 别的需要自行去下载相应的插件)
3.选择新建 Item 输入任务名称,选择 Pipeline 类型

4.在流水线下面填写该脚本 ,根据自己需求 去修改
pipeline {
agent any
stages {
stage('Checkout') {
steps {
echo '正在从 Gitee 拉取代码...'
git url: 'https://gitee.com/lin-feng-da/gitee-go-test.git',
branch: 'master',
credentialsId: 'gitee-access-token'
}
}
stage('Configure & Build') {
steps {
// 清理并创建 build 目录
bat 'rmdir /S /Q build 2>nul || ver > nul'
bat 'mkdir build'
dir('build') {
// 关键修改:加 -S .. 指定源码目录
cmake arguments: '-G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH="D:\\DevelopSoftware\\Qt\\6.8.3\\msvc2022_64" -DCMAKE_BUILD_TYPE=Release -S ..',
installation: 'InSearchPath'
// 编译(这里 . 代表当前 build 目录,正常)
cmake arguments: '--build . --config Release --verbose',
installation: 'InSearchPath'
}
}
}
stage('Deploy') {
steps {
dir('build') {
bat '''
set PATH=%PATH%;D:\\DevelopSoftware\\Qt\\6.8.3\\msvc2022_64\\bin
windeployqt --release --qmldir .. Release\\appqmlTest.exe
echo Deploy completed. Check Release folder for runnable package.
'''
}
}
}
}
post {
always {
archiveArtifacts artifacts: 'build/Release/**', allowEmptyArchive: true
}
}
}
5.点击保存,生成刚才填写代码中的 credentialsId ,Jenkins 需要知道gitee的 token 才允许访问

点击进去, 再点击 Add Credentials 填写gitee的账号,另外,还需要登录gitee 点击我的头像 设置,左边栏的私人令牌 生成一个新令牌 ,这个新令牌就是下面填写的这个密码,注意不要填成自己的账号的密码

点击保存之后,就可以点击 Build Now 看看有没有成功构建了 不行的话看下output 信息 我的输出到下面的这个地址了
C:\Users\admin\AppData\Local\Jenkins\.jenkins\workspace\QtTest\build\Release
测试成功生成后,就点击到Jenkins刚才项目的配置 找到Triggers 勾选gitee webhook 触发构建 在 Gitee WebHook 密码这里点击一下 生成 他会生成一个 密码
下一步 返回gitee 仓库页面 选择管理 WebHooks 点击新建 WebHook,注意 上面的URL 地址 需要公网的服务器的,给内网的 gitee 是推送不到数据的,需要下载一个 cpolar 去进行一个提供公网域名访问,免费的,下载注册登录之后 复制这个地址

假设 Jenkins 提供的是 http://localhost:8080/gitee-project/QtTest 则填到gitee 的url 是 http:/xxxxx/gitee-project/QtTest 这样 密码就复制刚才 Jenkins 生成的密码 点击保存 然后推送一下测试,就会自动编译了

浙公网安备 33010602011771号