关于如何定义一个流水线

在项目的根目录 定义文件 .gitlab-ci.yml

关于如何定义一个GitlabRunner

  1. 新建一个文件 .gitlab-ci.yml

  2. runner的类型 这里只介绍shell类型和 docker类型

  3. shell类型后续补充

  4. 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里面定义的要能对应起来
    
  5. 所有的变量

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的密码。