【问题标题】:Having gitlab produce installers让 gitlab 生成安装程序
【发布时间】:2017-06-15 11:54:30
【问题描述】:
我用跑步者和 CI 建立了一个 gitlab 社区实例,它运行良好。我现在面临的问题是:
- 项目 EXE 是主要的可执行文件
- 项目DLL是EXE需要的依赖DLL
我可以使用 Gitlab 运行器独立构建 EXE 和 DLL,但是有什么方法可以拥有 Gitlab
- 构建 DLL
- 构建 EXE
- 将它们打包在一起(如果我可以让 InnoSetup 或其他类型的安装程序创建器吐出一个成熟的安装程序作为工件,那将是很棒)
?
【问题讨论】:
标签:
git
version-control
continuous-integration
gitlab
【解决方案1】:
使用git submodules 可能是这里的方法。通过这种方式,您可以维护两个独立的项目,而一个项目依赖于另一个项目。这里的简洁效果是 CI 拉取您的 EXE 项目,您可以使用git submodule update --recursive --remote 拉取子模块。然后您可以先构建您的 DLL(它现在已经驻留在您的 EXE 项目中),然后再构建您的 EXE。
.gitlab-ci.yml 示例可能如下所示:
stages:
- build
- test
- deploy
buildjob:
stage: build
script:
- git submodules update --recusive --remote
- <build DLL>
- <build EXE>
- <create installer>
artifacts:
paths:
- <path to installer>