lint and tests:
tags:
- apk
- android
stage: analyze
script:
- ./gradlew --build-cache --no-daemon testDebugUnitTest lintDebug
artifacts:
name: "$CI_JOB_STAGE}_reports_${CI_PROJECT_NAME}_$CI_COMMIT_REF_SLUG"
when: on_failure
expire_in: 3 days
paths:
- "*/build/reports"
only:
- branches
except:
- master
与 compile release sources
差不多,only 和 except 设置的条件表示,除了 master 分之,在任何开发分之上提交或合并代码就会触发 pipeline,处于 CI 阶段
;artifacts 指定了产物,name:产物名字(阶段名字_reports_项目名字_分之名字), when:表示执行 Job 失败的时候;expire_in:产物超时时间为3天,paths: 将*/build/reports
目录下的文件添加到产物。
在这里需要注意的是 CI 阶段的 Jobs 主要是一些 规则性检查的 Job,如静态代码检查,依赖检查,图片大小检查;CD 阶段的 Jobs 包含 CI 阶段的 Jobs,还执行正常流程规定的 Job,像上面的 ./gradlew :app:assembleRelease
。
流程介绍
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。这篇文章中,我将会介绍基于 GitLab CI/CD 的自动化构建与发布实践。如下图所示,整个流程将分为几个部分:
1.首先开发人员在本地完成项目的开发之后,将代码推送到 Gitlab 仓库中。
2.当代码提交到 Gitlab 仓库时,会触发 Pipeline,Gitlab Runner 会根据 .gitlab-ci.yml 配置文件运行 Pipeline 中各阶段的任
前言:这篇文章主要讲一讲基于gitlab的CICD流程规范
基于gitlab的CICD流程规范一、简介二、CICD流程图三、CICD说明四、结合CICD流程拓展1、业务代码-数据库基于flyway实现版本控制2、数据库版本控制3、二进制或内置五、代码质量检查及自动化测试(未来)六、疑问解答与加群交流学习
为了提升线下测试效率,缩短测试时间,提升提测代码质量,规范流程,缩短测试准备和执行时间,缩短问题定位时间,提供预测性指标,规范CICD流程,以提升整体团队效率。
二、CICD流程图
三、CICD
2.1 gitlab-ci涉及的抽象概念(Runner/PipeLine/Executor/Job )
2.2 YML文件的基本语法规则
2.3 .gitlab-ci.yml配置的特定关键字
三.CI实战
3.1 编写一个gitlab-ci的“he
本文将会对Gitlab CI进行简要介绍,包括Gitlab Runner,Gitlab CI中的相关概念以及.gitlab-ci.yml的常用配置。
那么,GitLab CI 是什么?
GitLab CI 是GitLab内置的进行持续集成的工具,只需要在仓库根目录下创建.gitlab-ci.y...
1、将代码托管在git
2、在项目根目录创建ci文件.gitlan-ci.yml 在文件中指定构建,测试和部署脚本
3、gitlab将检测到他并使用名为git Runner的工具运行脚本
4、脚本被分组为作业,他们共同组成了一个管道
gitlab-ci的脚本执行,需要自定义按照对应的gitlab-runner来执行,代码puhs之后 webhook检测到代码变化就会触发gitlan-cl,分配到各个Runner来运行相应的脚本script
gitlab Runner
shared 共享
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。在GitLab8.0+提供了持续集成的功能,在GitLab中有个Runners的概念。Runner一共有三种类型1)本地Runner2)普通的服务器上的Runner3)基于Docker的Runn