如何使用无人机实现完全可跟踪的构建

没有构建信息的构建就像一个黑盒。你不知道它里面有什么,它使用了什么依赖关系,谁创建了它,什么时候创建的,用什么工具创建的。然后是属性、标签和大量元数据,这些元数据提供了构建的标识。没有构建信息,您的构建基本上是无用的。构建信息对于使您的构建可跟踪和完全可再现是至关重要的,因此,如果在应用程序生命周期中的任何时候发现了错误,您都可以精确地重新创建构建并调试它。在…的帮助下JFrog CLI, JFrog Artifactory收集和存储详尽构建信息用于无人机构建。
它是一只鸟,是一架飞机,是一架无人机
无人机是否建立了持续交付系统容器技术.它使用一个简单的YAML配置文件,一个超集docker-compose,定义并执行内部管道码头工人的容器.Drone可与容器内运行的任何语言、数据库或服务协作,并与流行的版本控制系统无缝集成,包括GitHub、GitHub Enterprise、Bitbucket等。
一旦你将Drone指向你的源代码存储库并“激活”其中一个,该存储库上的每个提交和拉请求都会从你的版本控制系统发送一个钩子到Drone服务器,触发它执行一个新的构建。因为没有比JFrog Artifactory更好的地方了,我们创建了一个与无人机集成允许您在Artifactory中发布和管理这些二进制文件。无人机与Artifactory合作,通过JFrog CLI,获取并缓存依赖项,然后将创建的包及其构建信息发布回Artifactory。

在成功构建之后,您可以查看详尽的构建信息在Artifactory中包括:
- 已发布的模块和依赖项
- 环境变量
- 许可证的总结
- 构建之间的差异
有了所有这些信息,这个黑盒就变得非常清晰,您可以确切地知道每个构建中加入了什么,是谁在什么时候放在那里的。
让我们集成Artifactory与您的无人机CI工作流
在下面的示例中,我们将逐步向您展示如何使用JFrog CLI使用Drone和Artifactory之间的集成。在这个例子中,我们将使用去,但您也可以轻松地使用其他示例中的一个用于我们的不同包类型GitHub上的项目示例库.
1.克隆这GO样本项目到你自己的Github存储库,并在你的Drone服务器上激活这个存储库,如下所示:
2.在屏幕右上角的菜单中,选择“Secret”,并在GO项目中配置您的Artifactory凭据和存储库的名称:
ARTIFACTORY_URL:https://artifactory.mycompany.com/artifactoryARTIFACTORY_USER:管理ARTIFACTORY_PASS:密码REPOSITORY_KEY:这个示例Go项目的构建输出在Artifactory中的目标存储库的名称:
3.提交无人机。项目根目录下的Yml配置文件:
管道:
构建:
图片:golang
秘密:[ARTIFACTORY_PASSWORD, ARTIFACTORY_USER, ARTIFACTORY_URL, REPOSITORY_KEY]
命令:
- echo $GOPATH
-去找-u golang.org/x/vgo
- export vgo=$GOPATH/bin/vgo
- CD你好
#下载JFrog命令行
- curl - fl https://getcli.jfrog.io | sh
- ./jfrog rt config - url=$ARTIFACTORY_URL - user=$ARTIFACTORY_USER - password=$ARTIFACTORY_PASSWORD
- ./jfrog rt c show
#在配置中修改存储库名称。到REPOSITORY_KEY。
- sed -i ' s,REPOSITORY_KEY,' " $REPOSITORY_KEY " ',g ' ../configuration.yml
#在CLI下执行go命令
- ./jfrog编译- no-registry
- ls -ll $GOPATH/src/mod
- ./jfrog rt go build go
- ./jfrog rt gp go-local v1.1.0 - build-name=Drone-GO-Demo - build-number=1.1.0
#使用bce命令收集环境变量
- ./jfrog rt bce Drone-GO-Demo 1.1.0
使用bp命令发布构建
- ./jfrog rt bp Drone-GO-Demo 1.1.0
4.在Drone UI中导航到作业以查看构建过程和日志
5.构建作业完成后,导航到工件存储库浏览器在Artifactory中查看您发布的工件:
6.中的构建信息构建浏览器:
单击任何构建ID以获得完整地重新生成该构建所需的所有信息。
晶莹剔透。
准备好使用Drone.io进行完全可跟踪的构建了吗?