GitLab文档缺乏,也不是很清楚。如何设置这个文件来自动构建我的C++项目(它会告诉你它是否通过或失败),以及如何配置为Windows/Mac/Linux单独构建。如果您需要我与您分享我的回购请求。我需要帮助为C++设置一个.gitlab-ci.yml文件
回答
在您自动执行任何操作之前,请手动运行它。编写一个shell脚本,然后把它放在CI中。以下是使用shell执行程序的简单模板。
before_script:
- export BUILD_VAR=if_needed
build_linux:
stage: build
script:
- my_build_script.sh
如果你的步骤很简单,你可以把它们直接在CI配置:
build_linux:
stage: build
script:
- ./configure
- make
获取从那里工作的最简单的例子,然后成长吧。
好吧,我应该把什么放在我的脚本,我必须用cmake或其他东西建立?对不起,我对C++社区很新,我习惯于统一和其他更简单的语言,但我喜欢学习,而C++非常棒。现在我只有一个基本的游戏,所以命令不应该太复杂。 – PlanetVaster
习惯上使用CMake进行树外构建,因此您可能需要一个用于设置构建目录的before脚本。你将需要创建一个缓存并设置你想要在你的项目中设置的任何变量,然后构建。 'cmake {PATH_TO_CMakeLists.txt} --DCMAKE_BUILD_TYPE:STRING =发布-DBUILD_FLAG_EXAMPLE:BOOL = ON'和build:'cmake --build .'。 'cmake --build .'可以在所有平台上工作,但不会被并行化 - 您可能想要使用特定于平台的构建命令,例如'make'或'MSBuild'以及适当的参数并行运行。 – chirality
要构建一个C++应用程序,您需要一个编译器。您可以使用具有编译器的现有Docker镜像。我在这里使用gcc
图片。
这是我的.gitlab-ci.yml文件。您不必使用CMake
,只需放入构建应用程序所需的任何命令,并确保您已满足映像中的构建依赖关系。
# Use the official gcc image
image: gcc
before_script:
# Install build dependencies
- apt-get update && apt-get -y install cmake
myapp:
# Build the application
stage: build
script:
- mkdir build
- cd build
- cmake ..
- make
这应该足以让你开始。
- 1. 我需要一个getFileExt帮助(c)中
- 2. 需要帮助设置SMTP
- 3. 需要帮助设置RoboSpock
- 4. 需要帮助设置htaccess
- 5. Android:需要帮助设计一个tableLayout
- 6. 在c文件中需要帮助make
- 7. [C++]需要帮助建立一个类
- 8. 需要一个LINQ ArgumentOutOfRangeException帮助C#
- 9. 需要帮助为SDL C++教程设置Makefile - 无法链接目标文件
- 10. 需要帮助从文件
- 11. 我需要一个SQL查询帮助
- 12. 我需要一些帮助设计一个阵列
- 13. 需要帮助为Jenzabar创建一个menuopt文件CX
- 14. 需要帮助设置开发环境
- 15. 需要帮助来设置node.js
- 16. 需要帮助设置休眠
- 17. 需要帮助来设置参数
- 18. 需要帮助设置开源库JFreeChart
- 19. 需要帮助设置回形针
- 20. 需要htaccess帮助设置rewritebase
- 21. 需要将多个数组值设置为null的帮助 - javascript
- 22. 需要帮助来“设置”一个REST风格的web服务
- 23. 需要帮助在Windows上设置一个Git服务器
- 24. WCF设计需要帮助
- 25. C++:我需要帮助目录导航
- 26. 我需要帮助日食的配置
- 27. 我需要帮助配置ASP.net简介
- 28. PHP $ _GET [ '设为myVal']帮助需要
- 29. 我需要一些帮助与PHP邮件(附加文件)
- 30. 我需要从C++中的文件解析帮助
只需向我们展示.gitlab-ci.yml文件即可。 – Kiloreux
@Kiloreux我还没有一个,因为我不知道如何为C++设置一个。我使用gitlab.com并使用他们共享的跑步者。我是CI的新手,我查看了.gitlab-ci.yml文件的文档,但无法弄清楚如何为C++做一个,他们的例子是用于rails的ruby(我不知道) 。 – PlanetVaster