配置 CI 自动化机器, win 的构建环境应该装 windows server 吗?

2022-06-23 10:30:02 +08:00
 twistedmeadows
背景:一群 Linux 程序员,Windows 不太熟。

公司的软件现在要全部做 Windows 兼容。Gitlab CI 自动构建这块,就需要新增 Windows 的 CI Runner 来执行 windows 版本的构建。
目标用户环境是 win10 。按理说 CI Runner 的操作系统也安装 win10 是最简单的。
但是既然是作为 runner 的服务器,是否应该安装 windows server 才更好?(管理上、并发数等等?)
如果使用 windows server 作为操作系统,构建出来的软件是否会存在兼容性问题?例如在用户环境上某个 DLL 找不到?


另:相同配置的机器,win10 和 windows server 跑 gitlab CI runner ,并行执行的任务数量是否有差异?
1586 次点击
所在节点    Windows
9 条回复
zengxs
2022-06-23 10:33:42 +08:00
目标环境是 win10 那肯定 CI 也装 win10 啊
pigspy
2022-06-23 10:34:12 +08:00
你们构建出来的软件是运行在 win server 还是 win10 上的?跟目标平台一致不就行了
twistedmeadows
2022-06-23 10:38:49 +08:00
@pigspy 构建出来的软件是运行在 win10 上。

那再补充一个问题:windows 10 专业版、企业版 和 普通的家庭版,会有兼容性方面的问题吗?例如我们用企业版构建出来的软件,在用户那里是家庭版环境中运行
pigspy
2022-06-23 10:49:16 +08:00
@twistedmeadows
你要看你们用到了 win10 的啥东西,一般来说没啥区别
但是如果你们用到了组策略之类啥的会有区别
129tyc
2022-06-23 11:54:27 +08:00
之前整过 windows 流水线构建,只能说 windows 容器是大坑,慎重
kaedeair
2022-06-23 12:09:20 +08:00
你们是用 mingw 还是 msvc 构建的,mingw 应该不受 msvc 运行库和 windows 版本的影响,msvc 的话主要是看用到了什么系统特性和运行库链接方式
MSVC 这里有个坑和 linux 不太一样,有个 MT MD 的选项,决定是否需要 VC 运行库才能运行,这个东西必须一个工程里所有依赖都要统一
twistedmeadows
2022-06-23 12:41:50 +08:00
@kaedeair 准备是用 msvc ,我们的代码都是尽可能做到平台无关的,所以除开文件操作之类的,期望用到的系统特性都尽可能少。
ddrobot
2022-06-23 14:03:53 +08:00
@twistedmeadows 文件操作的话,新编译器也支持 std::filesystem 了
Mithril
2022-06-23 14:07:10 +08:00
msvc 直接用官方那几个 build 工具就行了。不存在平台区别。
只要你发布的时候带上你用的 vcruntime 就可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861568

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX