gitlab-ci基本概念以及运行

使用GitLab CI

前提条件是: runner 能够成功跑通

安装请点击

最终目标,快速,漂亮的.gitlab-ci.yml文件

基础概念

文档位置> clicked

语法太多,用什么看什么吧!!!

以下是常用概念

PipeLine

一次Pipeline 相当于一次构建任务,里面包含多个流程,如安装依赖、运行测试、编译、部署测试服务器,部署生产服务器等流程

任何提交或者Merge Request 的合并 都可以出发PipeLine

Stages

Stages 表示构建阶段,就是Pipeline 的流程。

可以在一次PipeLine 中定义多个Stages ,具有以下特点:

  1. 所有Stages 会按照顺序执行,即当一个Stage 完成后,下一个Stage 才会开始
  2. 只有当所有Stages 完成后,该构建任务Pipeline 才会成功
  3. 如果任何一个Stage 失败,那么后面的Stages不会执行,此构建任务失败

Jobs

表示构建工作,表示某个Stage 里面执行的工作。我们可以在Stages 里面定义多个Jobs

  1. 相同 Stage 中的 Jobs 会并行执行
  2. 相同 Stage 中的 Jobs 都执行成功时,该 Stage 才会成功
  3. 如果任何一个 Job 失败,那么该 Stage 失败,即该构建任务 (Pipeline) 失败

GitLab Runner

构建任务,是由 GitLab Runner 进行 推动。

GitLab CI 最大的作用 是管理各个项目的构建状态

.gitlab-ci.yml

在 gitlab 中 有例子,例如下

# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest

services:
  - docker:dind

build:
  stage: build
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE:CI_COMMIT_REF_SLUG" .
    - docker push "$CI_REGISTRY_IMAGE:CI_COMMIT_REF_SLUG"

自己测试的模板

stages:
  - deploy

docker-deploy:
  stage: deploy
  # 执行Job内容
  script:
    # 通过Dockerfile生成cicd-demo镜像
    - docker build -t test-demo .
    # 删除已经在运行的容器
    -  if [ $(docker ps -aq --filter name=test-demo) ]; then docker rm -f test-demo;fi
    # 通过镜像启动容器,并把本机8000端口映射到容器8000端口
    - docker run -d -p 10001:10001 --name=test-demo test-demo:latest
  after_script:
    - curl http://127.0.0.1:10001/
  tags:
    # 执行Job的服务器
    - test
  only:
    # 只有在master分支才会执行
    - master

使用的环境

centos 8

裸机安装 gitlab-runner

docker

成功截图:
在这里插入图片描述

常用关键字
  1. stages
    1. 默认有三个 : build,test,deploy
  2. types
    1. stages 的别名
  3. before_script
    1. 定义任何jobs 运行前都会执行的命令
  4. after_script
    1. 定义任何jobs 运行完后都会执行的命令
  5. variable && job.variables
    1. 定义环境变量,如果定义了 Job 级别的环境变量的话,该 Job 会优先使用 Job 级别的环境变量。
  6. cache && Job.cache
    1. 定义需要缓存的文件。每个 Job 开始的时候,Runner 都会删掉 .gitignore 里面的文件。如果有些文件 (如 node_modules/) 需要多个 Jobs 共用的话,我们只能让每个 Job 都先执行一遍 npm install
    2. 具体项目,具体分析
  7. job.script
    1. 定义job 要运行的命令,必填项
  8. job.stage
    1. 默认为test
  9. Job.artifacts
    1. 定义 Job 中生成的附件。当该 Job 运行成功后,生成的文件可以作为附件 (如生成的二进制文件) 保留下来,打包发送到 GitLab,之后我们可以在 GitLab 的项目页面下下载该附件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值