1、GitLab CI脚本基本语法

GitLab CI Runner常用的有两种,一种是Shell的,另一种是Docker的,采用Docker Runner的话需要指定具体镜像,脚本中可以通过tags指定执行该作业的Runner

基本语法案例

image: xxx # 基础镜像,如果使用docker runner但是没有指定镜像时默认采用此镜像before_script: # 定义在每个作业的脚本之前运行的命令- xxxafter_script: # 定义在每个作业的脚本之后运行的命令- xxxstages: # 定义作业可以使用的阶段,如果任何一步作业失败,则不会执行下一步的作业- build- test- deploybuild: # 工作stage: build # build阶段tags: # 指定运行该脚本的Runner- dev-buildonly: # 定义作业将要运行的分支和标签的名称- tags # 打tag时才会执行- web # 只有在web界面进行操作才会执行script: # 由Runner执行的shell脚本- build_image

2、使用GitLab CI+jib实现自动打包镜像

pom.xml中jib相关配置

            <plugin><groupId>com.google.cloud.tools</groupId><artifactId>jib-maven-plugin</artifactId><version>1.6.1</version><configuration><from><image>${base_image}</image></from><to><image>${registry_url}/${registry_project}/${project.artifactId}:${image_tag}</image><auth><username>${registry_username}</username><password>${registry_password}</password></auth></to><allowInsecureRegistries>true</allowInsecureRegistries><container><jvmFlags><jvmFlag>-Djava.security.edg=file:/dev/./urandom</jvmFlag></jvmFlags><user>app:app</user></container></configuration></plugin>

.gitlab-ci.yml文件

stages:- buildbuild:stage: buildtags:- dev-buildonly:- tags- webscript:- build_image.auto_devops: &auto_devops |function build_image(){mvn compile jib:build \-Dbase_image=基础镜像地址 \-Dregistry_url=镜像仓库地址 \-Dregistry_project=镜像仓库中的项目名 \-Dregistry_username=用户名 \-Dregistry_password=密码 \-Dimage_tag=$CI_COMMIT_REF_NAME }before_script:- *auto_devops

build使用的Runner为Shell Runner,$CI_COMMIT_REF_NAME可以得到在Gitlab打tag时指定的tag,最终实现的效果就是通过在GitLab上打tag使用jib自动打包镜像

GitLab CI脚本编写相关推荐

  1. Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)

    相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

  2. 极狐GitLab CI/CD关键词(一):脚本script,前置脚本before_script,后置脚本after_script

    简介 本篇文章详细介绍了极狐GitLab CI/CD中script,before_script,与after_script三个关键词. 对于一个作业script内容是必填项(trigger 作业除外) ...

  3. Gitlab CI 持续集成的完整实践

    来源:https://dwz.cn/mWyVHoSm 借着公司代码库迁移到私有Gitlab的契机,我接下持续集成的工作,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持续集成.总体 ...

  4. jenkins 增量发布插件_CI/CD工具:Jenkins还是GitLab CI/CD?

    十年来,持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域都取得了很大的进步.DevOps 测试的兴起导致了对 CI/CD 工 ...

  5. 使用GitLab CI和Docker进行容器应用自动化部署

    容器 Docker 越来越受开发者和运维人员的喜爱,更是作为实践 DevOps 的一个中要工具.同时 Gitlab 提供了免费的代码管理服务,其 gitlab-ci 更是提供了强大的自动化 CI/CD ...

  6. Ubuntu amp;amp; GitLab CI amp;amp; Docker amp;amp; ASP.NETnbs

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  7. ci 数据库异常捕获_系统地捕获错误:如何通过4个步骤构建GitLab CI测试管道

    ci 数据库异常捕获 by Joyz 通过乔伊斯 系统地捕获错误:如何通过4个步骤构建GitLab CI测试管道 (Catch bugs systematically: how to build a ...

  8. gitlab ci 自动化部署_lt;为什么准备使用GitLab做CICD流水线?/gt;

    本文是<GitLabCI实践>教程基础部分内容,讲述为什么要使用GitLabCICD功能,点击上面图片获取免费公开课报名链接,欢迎报名学习! 传统的应用开发发布模式 开发团队在开发环境中完 ...

  9. gitlab ci php 构建,GitLab CI的入门搭建

    搭建一个GitLab CI环境分两步 在服务器配置GitLab Runner GitLab Runner是一个用来执行持续集成脚本的网络服务,它的工作模式是 轮询GitLab仓库 一旦发现GitLab ...

最新文章

  1. Windows 08R2 IIS网站架设
  2. leetcode算法题--多米诺与托米诺平铺★
  3. 编译Android 4.0 ICS注意事项
  4. Java Review - HashMap HashSet 源码解读
  5. mysql addslashes_PHP函数addslashes和mysql_real_escape_string的区别
  6. CentOS上安装MyCat-MySQL
  7. 以下关于c语言中static和const,c语言中static const作用
  8. sql replace函数_SQL REPLACE函数概述
  9. 微服务和分布式的区别_大话中台三:中台的搭建,分布式与微服务
  10. 如何在苹果Mac中使用聚焦搜索 NTFS 格式磁盘?
  11. 学生选课系统—软件工程课程设计
  12. 用JSON-server模拟REST API(二) 动态数据
  13. office2010在安装过程中出错Error 1935的解决方法
  14. windows内核提权漏洞发现与利用
  15. Fedora系统之打开终端快捷键设置
  16. icon php图标集合,iconfont字体图标和各种css小图标的详解
  17. 树莓派外接显示器黑屏_解决树莓派连接显示屏No Signal的问题
  18. mkdir -p的含义
  19. 距离除夕倒计时 距离2022年除夕还有多少天用便签计算
  20. SolidWorks装配模块四连杆运动仿真…

热门文章

  1. Angular_树形控件
  2. mysql:解决数据库名字的格式——不能用横杠-
  3. JAVA 进行图片中文字识别(准确度高)!!!
  4. HIVE修改默认端口
  5. Everything is possible and available
  6. R语言中 数据读取与写入
  7. 建筑设计和绘图的CAD软件AutoCAD Architecture 2024版本在Windows系统的下载与安装配置
  8. CSS 选择器 — 重学CSS
  9. S7-300 MCGS 基于MCGS及PLC的饮料灌装生产线控制系统
  10. 通信内聚c语言例子,功能内聚、顺序内聚、数据耦合、控制耦合例子