【问题标题】:I need help setting up a .gitlab-ci.yml file for C++我需要帮助为 C++ 设置 .gitlab-ci.yml 文件
【发布时间】:2016-04-23 17:43:36
【问题描述】:

GitLab 文档缺乏且不是很清楚。如何设置此文件以自动构建我的 C++ 项目(它会告诉您它是通过还是失败)以及如何配置为 Windows/Mac/Linux 单独构建。如果您需要我与您分享我的回购协议,请询问。

【问题讨论】:

  • 给我们看一下 .gitlab-ci.yml 文件。
  • @Kiloreux 我还没有,因为我不明白如何为 c++ 设置一个。我使用 gitlab.com 并使用他们的共享跑步者。我是 CI 新手,我查看了 .gitlab-ci.yml 文件的文档,但不知道如何为 c++ 做一个,他们的示例是用于 ruby​​ on rails (我不知道) .

标签: c++ git continuous-integration gitlab gitlab-ci


【解决方案1】:

在您自动执行任何操作之前,请手动运行它。编写一个 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++ 很棒。现在我只有一个基本的游戏,所以命令应该不会太复杂。
  • 习惯上使用 CMake 进行树外构建,因此您可能需要一个用于设置构建目录的 before 脚本。您将需要创建一个缓存并设置您想要在项目中设置的任何变量,然后构建。 cmake {PATH_TO_CMakeLists.txt} --DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_FLAG_EXAMPLE:BOOL=ON 并构建:cmake --build .cmake --build . 可以在所有平台上运行,但不会被并行化——您可能希望使用特定于平台的构建命令,例如 makeMSBuild,并带有适当的参数以并行运行。
【解决方案2】:

要构建 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

这应该足以让你开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多