[参考文章]

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

docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
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,注意:要将此文件放在项目根目录!

stages:
- build
- test build:
stage: build
image: gbuild:latest
script:
- echo "info> sample build complete"
only:
- master
tags:
- Specific Runners test:
stage: test
image: gtest:latest
script:
- echo "info> sample test complete"
only:
- master
tags:
- 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. [WIP]C语言 realloc的坑

    创建: 2019/01/07 题外话,不知不觉又一年过去了,2019也要好好努力. 回到主题,在用动态循环数组实现queue的时候, 由于realloc的原因出现了一些莫名其妙的错误. 先开个题,晚点 ...

  2. 模板 - n个数的乘法逆元

    这道题里面不用保存 inva[i] ,而且还卡常.事实证明快读快到飞起, #include<bits/stdc++.h> using namespace std; typedef long ...

  3. 洛谷 - UVA11424 - GCD - Extreme (I) - 莫比乌斯反演 - 整除分块

    https://www.luogu.org/problemnew/show/UVA11424 原本以为是一道四倍经验题来的. 因为输入的n很多导致像之前那样 \(O(n)\) 计算变得非常荒谬. 那么 ...

  4. 201621123016《Java程序设计》第三周学习总结

    1. 本周学习总结 1.初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写 ...

  5. lightoj1004【基础DP】

    从低端到顶端求个最大值: 思路: 基础DP,递推 #include<cstdio> #include<queue> #include<map> #include&l ...

  6. Trie树(小)总结 By cellur925

    关于\(Trie\)树的详细介绍,还请移步这篇深度好文 基本操作 插入 void insert() { int p=0; int len=strlen(tmp+1); for(int i=1;i< ...

  7. Qt 进程和线程之一:运行一个进程和进程间通信

    Qt提供了对进程和线程的支持.本节讲述了怎样在Qt应用程序中启动一个进程,以及几种常用的进程间通信方法.如果对进程和线程的概念不是很了解,可以看我的另一篇博客:[多进程和多线程的概念. 设计应用程序时 ...

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

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

  9. 537 Complex Number Multiplication 复数乘法

    详见:https://leetcode.com/problems/complex-number-multiplication/description/ C++: class Solution { pu ...

  10. 安卓新的联网方式 Volley的使用(2)

    如果使用volley 获取 网络图片 最好还是用 Volley 提供的NetworkImageView类,  可以很轻松的 完成工作, 而且他可以设置缓存, lru 和 sd卡的缓存.一些都封装好了. ...