返回

WSL 下使用 Jenkins 自动构建 Qt 程序并打包为 EXE 文件

后端

前言

在前面的文章中,我们已经介绍了如何在 WSL 下使用 Jenkins 自动编译和打包 Go 和 Java 程序。本篇将继续探讨如何将这一自动化流程应用于 Qt 程序。通过使用 WSL 和 Jenkins,我们可以有效地跨平台构建和打包 Qt 项目,提高开发效率并节省大量时间。

WSL 安装和配置

首先,需要确保在系统中已安装并配置好 WSL。具体的安装和配置步骤可以参考微软官方文档。

安装 Jenkins

WSL 安装完成后,就可以安装 Jenkins 了。可以使用以下命令通过 apt 包管理器安装 Jenkins:

sudo apt update && sudo apt install jenkins

安装完成后,启动 Jenkins:

sudo systemctl start jenkins

创建 Jenkins 项目

打开 Jenkins 网页界面,创建一个新的项目。在项目配置中,选择“构建触发器”为“GitLab CI/CD”,然后配置相应的 GitLab CI/CD 设置。

配置 Jenkinsfile

在项目工作区根目录创建一个名为 Jenkinsfile 的文件,内容如下:

node {
  stage('Checkout Code') {
    git 'https://gitlab.example.com/user/project.git'
  }
  stage('Build Qt Project') {
    bat 'qmake && make'
  }
  stage('Package Qt Application') {
    bat 'windeployqt --release ProjectName.exe'
  }
  stage('Deploy EXE File') {
    archiveArtifacts 'ProjectName.exe'
  }
}

参数化构建

为了支持不同平台和配置的构建,可以在 Jenkinsfile 中使用参数化构建。例如,可以添加以下代码来指定 Qt 版本和编译目标:

def qtVersion = '5.15.2'
def target = 'windows'

node {
  stage('Checkout Code') {
    git 'https://gitlab.example.com/user/project.git'
  }
  stage('Build Qt Project') {
    bat 'qmake -qt=$qtVersion && make -j$(nproc) $target'
  }
  stage('Package Qt Application') {
    bat 'windeployqt --release ProjectName.exe'
  }
  stage('Deploy EXE File') {
    archiveArtifacts 'ProjectName.exe'
  }
}

构建和部署

现在可以手动或通过 GitLab CI/CD 触发构建。构建完成后,打包好的 EXE 文件将被保存在 Jenkins 工作区的 artifacts 文件夹中。

总结

通过在 WSL 中使用 Jenkins,我们可以轻松实现 Qt 程序的自动构建和打包,简化开发流程,提高效率。本文提供了详细的步骤和配置示例,希望对读者有所帮助。