[参考文章]

1. 在虚拟机或服务器运行gitlab-runner容器

  1. docker run -d --name gitlab-runner --restart always \
  2. -v /var/run/docker.sock:/var/run/docker.sock \
  3. -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  4. gitlab/gitlab-runner:latest

2. 新建测试项目,并复制token

3. 注册项目runner

  • docker exec -it gitlab-runner gitlab-runner register

  • 配置完成后会生成config.toml,如注册时输入有误可以手动修改错误后重启gitlab-runner,注意:这里要手动添加一行pull_policy = "never"(缩进用4个空格,不能用tab),意思是不从docker仓库拉取镜像,只从本地拉取(具体参考Chengzi_comm的专栏)这里的token跟第2步的token不是同一个东西,不要混淆。

vim /srv/gitlab-runner/config/config.toml

  • 回到第2步的页面就可以看到注册的runner了, 禁用共享的runners(如图页面)

  • 启用Auto DevOps

4. 至此,runner注册好了也启用auto devops了,但此时你修改项目文件并提交修改就会触发auto devop,但是会失败,因为没有.gitlab-ci.yml文件在项目的根目录

5. 所以我们要编写.gitlab-ci.yml,并调用刚注册好的Specific Runners,注意:要将此文件放在项目根目录!

  1. stages:
  2. - build
  3. - test
  4. build:
  5. stage: build
  6. image: gbuild:latest
  7. script:
  8. - echo "info> sample build complete"
  9. only:
  10. - master
  11. tags:
  12. - Specific Runners
  13. test:
  14. stage: test
  15. image: gtest:latest
  16. script:
  17. - echo "info> sample test complete"
  18. only:
  19. - master
  20. tags:
  21. - Specific Runners

6. 而第5步需要用到docker image:gbuild:latest和image:gtest:latest,这2个镜像是自定义的镜像在docker仓库是没有的,

  • 可以参考Chengzi_comm的专栏的第二步(2)用dockerfile build 2个自定义名字的镜像替换掉我这里的gtest:latest等,
  • 也可以拉个系统镜像,然后运行一个容器,在里面安装需要的工具,之后将容器打包成自定义的镜像。
  • 也可以拉我的镜像来测试docker pull vickeywu/gbuild,我只上传了一个镜像,如果需要多个,只需自己拉下来重新打个tag就行,参考如何将docker 镜像上传到docker hub仓库

7. 现在修改项目文件提交之后就会自动调用注册的runner来构建测试代码了

8. 在服务器上也可以看到runner运行时会调用gbuild镜像运行一个临时的容器以测试代码。

gitlab autuo devops的更多相关文章

  1. 大揭秘| 我司项目组Gitlab Flow && DevOps流程

    长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架. Dev ...

  2. 02 基础设施/Gitlab - DevOps之路

    基础设施/Gitlab - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 源代码管理器选用Gitlab,新版(2 ...

  3. 如何搭建基于Docker的gitlab服务器集成CI/CD实现DEVOPS(完整版)

    From this lesson you will learn about 1,How to install and configure a docker based gitlab server 2, ...

  4. 【DevOps】团队敏捷开发系列--开山篇

    随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发-测试-发布)模式已经不能满足快速交付的需求.2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建.测 ...

  5. Gitlab Flow到容器

    一.简介 长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架 ...

  6. rpm,docker,k8s三种方式安装部署GitLab服务

    rpm方式 源地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ wget https://mirrors.tuna.tsinghua ...

  7. 【Devops】【docker】【CI/CD】3.Jenkins+GitLab+docker+springboot 实现自动化部署

    ==================================================================================================== ...

  8. 【Devops】【docker】【CI/CD】1.docker搭建Gitlab环境

    CI/CD[持续化集成/持续化交付] docker搭建Gitlab环境 1.查询并拉取gitlab镜像 docker search gitlab docker pull gitlab/gitlab-c ...

  9. GitLab+Rancher实践DevOps【转载】

    摘要 本文描述使用自建GitLab和Rancher实践持续集成/持续交付流水线的过程,并用Rancher实现容器编排和蓝绿发布. GitLab持续集成 GitLab持续集成/持续交付流程图:部署Git ...

随机推荐

  1. POJ3414(BFS+[手写队列])

    贴一发自己写的手写队列-.. #include <stdio.h> #include <iostream> #include <string.h> #include ...

  2. 【Luogu P1502】 窗口的星星

    →传送窗口 (复制一下题面好了~) 题目背景 小卡买到了一套新房子,他十分的高兴,在房间里转来转去. 题目描述 晚上,小卡从阳台望出去,“哇~~~~好多星星啊”,但他还没给其他房间设一个窗户,天真的小 ...

  3. Linux —— 文件搜索命令

    文件搜索命令(配置文件/etc/updatedb.conf) locate 文件名 搜索速度非常快 在后台数据库中按照文件名搜索 updatedb 更新数据库 只可以按照文件名搜索 whereis 命 ...

  4. UVa12716:gcd等于xor(打表+类素数筛+差分约束)

    紫书给的分析缺少一些证明性的东西,将我自己的OneNote笔记贴在这里.

  5. SpringMVC-高级参数绑定

    绑定数组 需求 在商品列表页面选中多个商品,然后删除. 需求分析 此功能要求商品列表页面中的每个商品前有一个checkbook,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品 ...

  6. eShopOnContainers 是一个基于微服务的.NET Core示例框架

    找到一个好的示例框架很难,但不是不可能.大多数是小型Todo风格的应用程序,通常基于SimpleCRUD.值得庆幸的是,Microsoft已经为eShopOnContainers创建了一个基于微服务的 ...

  7. 利用HttpClient4访问网页

    一.HttpClient介绍 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是它没有提供足够的灵活性和其他应用程序需要的功能.HttpClient 是 Apac ...

  8. python 生成器与迭代器

    #! /usr/bin/env python# -*- coding:utf-8 -*- def xrange(n): num = 0 while True: if num > n: retur ...

  9. DB2 函数

    1.大小写转换 转大写UPPER 转小写LOWER

  10. python_21(Django中间件)

    第1章 中间件 1.1 介绍 1.2 种类 1.3 自定义中间件 1.4 process_request 1.4.1 注册中间件 1.5 process_response 1.6 process_vi ...