关于如何定义一个流水线
在项目的根目录 定义文件 .gitlab-ci.yml
关于如何定义一个GitlabRunner
-
新建一个文件 .gitlab-ci.yml
-
runner的类型 这里只介绍shell类型和 docker类型
-
shell类型后续补充
-
docker类型
image: docker:latest services: - docker:dind // 这里定义了流水线的步骤, 理论上是可以随便写的, 他只要能和后面对应起来就行 // 这里定义的顺序决定了cicd的执行步骤 stages: - build - deploy build-job1://这个标签随便写 stage: build //这里和stages里面定义的要能对应起来 tags: - groupgorunner //此处是定义了执行器的tag - 其他具有相同指令的执行器。同理, 不同的执行器是具有多线程执行的 script: - docker build -t 192.168.77.22:10580/test/myapp:1.0.0 - 每一个元素都是一条命令 // 两个具有相同stage 内容的job 是多线程执行的, 当所有现成都执行完, 才会向下执行 build-job2://这个标签随便写 stage: build //这里和stages里面定义的要能对应起来 tags: - 其他执行器//此处是定义了执行器的tag script: - 其他命令 - deploy-job: //这个随便写 stage: deploy // 这里和stages里面定义的要能对应起来 -
所有的变量
CI_PROJECT_ID:项目的ID。
CI_PROJECT_NAME:项目的名称。
CI_PROJECT_NAMESPACE:项目的命名空间。
CI_COMMIT_REF_NAME:分支或标签的名称。
CI_COMMIT_SHA:提交的SHA。
CI_COMMIT_BEFORE_SHA:前一次提交的SHA。
CI_COMMIT_TAG:如果当前提交是标签,则为标签名。
CI_JOB_ID:作业的ID。
CI_JOB_NAME:作业的名称。
CI_JOB_STAGE:作业所处的阶段(例如 build, test)。
CI_JOB_URL:作业的URL。
CI_PIPELINE_ID:流水线的ID。
CI_SERVER_URL:GitLab服务器的URL。
CI_SERVER_HOST:GitLab服务器的主机名。
CI_SERVER_PROTOCOL:GitLab服务器的协议(http或https)。
CI_SERVER_PORT:GitLab服务器的端口。
CI_SERVER_VERSION:GitLab服务器的版本。
CI_REGISTRY:Docker Registry的URL。
CI_REGISTRY_USER:用于登录Docker Registry的用户名。
CI_REGISTRY_PASSWORD:用于登录Docker Registry的密码。