我正在使用这种配置大约两年。我必须说,我对DevOps不太了解,但是我使用它们来自动化测试过程和实际交付到远程Artifactory的过程。
昨天,我读了一篇关于CI / CD的article,其中一件事引起了我的注意,数字3:“先打包,然后运行作业”。
我不喜欢管道的一件事是花费的时间……速度越快6分钟,速度越慢10-11分钟。
我正在使用GitLab CI / CD,正在谈论Android App,Android库和Java库。
我所有的管道都有3个阶段:
build
,在其中运行命令。/gradlew assembleRelease test
,我在其中运行 ./ gradlew测试,然后执行与JaCoCo相关的脚本deploy
,这里我有几个命令可以将工件发布到远程Artifactory 我开始认为可以删除第一个build
阶段,因为它不会产生任何有趣的结果(它将在GitLab中生成一个工件,但我没有使用它)。而且我正计划将其删除。
那是正确的吗?我之所以这么问,是因为就像我开始使用DevOps时学到的某种法律一样,每个脚本必须有一个build
阶段,然后是一个test
阶段。但是,如果test
阶段确实可以构建它,那为什么要我以前构建它?
我认为这只是改善管道时间安排的一种方式。让我感到困扰的是,我需要等待大约10分钟才能在Artifactory中拥有该人工制品以准备使用。
以防万一,在某些脚本(Android脚本)中,我启用了缓存,而在其他脚本中,我没有,也没有看到实质性的区别。这是缓存部分
cache:
key: ${CI_PROJECT_ID}
paths:
- .gradle/
谢谢!