GitLab 使用“runners”来执行 CI 作业。运行器安装在您想要运行 CI 作业的任何位置,因此如果您想在多个架构上运行,那么您需要在每个架构的系统上安装运行器。可以在此处找到运行器安装文档:
https://docs.gitlab.com/runner/install/index.html https://docs.gitlab.com/runner/install/index.html
对于基于 Linux 的作业,通常使用 Docker 来执行作业 - 这并没有提供架构灵活性,但它确实允许您使用容器化来测试不同风格和不同软件。对于其他架构,您可能需要自己安装运行器,或使用其他人的共享运行器。
在安装运行器软件时,有一些关键步骤:
安装跑步者后,您可以编辑您的跑步者.gitlab-ci.yml
file.
GitLab CI 文件被分为“阶段”。每个阶段的作业可以并行运行。阶段名称在文件顶部定义。
stages:
- build
- deploy
每个 CI 作业都可以使用以下方法附加到一个阶段:stage:
entry:
build job:
stage: build
script:
- echo "I am a build stage job"
在您的情况下,您将需要为您想要构建的每个架构创建多个作业。将它们连接到同一阶段将允许它们并行运行。
要控制每个作业的运行位置,您有两种主要机制:
标签 - 标签允许您将作业固定到跑步者标签。您可以使用指定多个标签tags:
形成 AND 列表的条目(例如win
标记与x86_64
标签)。当该作业运行时,GitLab 将找到一个具有所有必需标签的运行程序,并在那里运行该作业。
镜像 - 在 Docker / Kubernetes 上运行时,您可以指定用于运行程序的 docker 镜像。要使用 docker 镜像,您首先需要指定一个可以运行 docker 镜像的运行程序(例如 docker-in-docker 或 kubernetes 运行程序),例如,它可能被标记为docker
or kubernetes
。然后你使用image:
指定 docker 镜像的条目。
这是显示标签和图像的示例:
build win x86_64:
stage: build
tags:
- win
- x86_64
script:
- echo "I am a build stage job for win x86_64"
build win 32:
stage: build
tags:
- win
- 32-bit
script:
- echo "I am a build stage job for win 32"
build debian:
stage: build
tags:
- docker
image: debian:stretch
script:
- echo "I am a build stage job for debian, running on docker using debian:stretch image"
目前不支持动态作业,或在多个运行器/架构上运行一个作业,因此这需要一些手动工作。从积极的一面来看,它使 GitLab CI 文件易于阅读,并且易于查看 CI 执行期间将运行的内容。