如何实现完全可追踪的构建与无人机

无人机io和JFrog Artifactory

没有构建信息的构建就像一个黑盒。你不知道它里面有什么,它使用了什么依赖关系,谁创建了它,什么时候创建的,用什么工具创建的。然后是属性、标签和一系列元数据,这些元数据赋予了构建的身份。没有构建信息,你的构建基本上是无用的。构建信息对于构建的可跟踪性和完全可再现性至关重要,因此,如果在应用程序生命周期的任何时候发现bug,您都可以精确地重新创建构建并调试它。在…的帮助下JFrog CLI, JFrog Artifactory收集和存储详尽构建信息用于无人机构建。

它是鸟,它是飞机,它是无人机

无人机持续交付系统建立在什么基础上容器技术。它使用一个简单的YAML配置文件,一个超集docker-compose,在其中定义和执行管道码头工人的容器。无人机工作与任何语言,数据库或服务,在容器内运行,并与流行的版本控制系统,包括GitHub, GitHub企业,Bitbucket等无缝集成。

一旦你将Drone指向你的源代码存储库并“激活”其中一个,该存储库上的每个提交和拉取请求都会从你的版本控制系统发送一个钩子到Drone服务器,触发它执行一个新的构建。由于没有比JFrog Artifactory更适合构建的地方了,我们创建了一个与无人机集成让您在Artifactory中发布和管理这些二进制文件。无人机与Artifactory合作,通过JFrog CLI,以获取和缓存依赖项,然后将创建的包及其构建信息发布回Artifactory。

没有构建信息的构建就像一个黑盒。你不知道它里面有什么,它使用了什么依赖关系,谁创建了它,什么时候创建的,用什么工具创建的。然后是属性、标签和一系列元数据,这些元数据赋予了构建的身份。没有构建信息,你的构建基本上是无用的。构建信息对于构建的可跟踪性和完全可再现性至关重要,因此,如果在应用程序生命周期的任何时候发现bug,您都可以精确地重新创建构建并调试它。在JFrog CLI的帮助下,JFrog Artifactory收集并存储无人机构建的详尽构建信息。它可以是鸟,可以是飞机,可以是无人机无人机是一种基于集装箱技术的持续交付系统。它使用一个简单的YAML配置文件(Docker -compose的超集)来定义和执行Docker容器中的管道。无人机工作与任何语言,数据库或服务,在容器内运行,并与流行的版本控制系统,包括GitHub, GitHub企业,Bitbucket等无缝集成。一旦你将Drone指向你的源代码存储库并“激活”其中一个,该存储库上的每个提交和拉取请求都会从你的版本控制系统发送一个钩子到Drone服务器,触发它执行一个新的构建。 And since there’s no better place for your builds than JFrog Artifactory, we created an integration with Drone letting you publish and manage these binaries in Artifactory. Drone works with Artifactory, through JFrog CLI, to fetch and cache dependencies, and then publishes created packages along with their build information back to Artifactory.

成功构建后,您可以查看详尽的构建信息在工厂中包括:

  • 发布的模块和依赖项
  • 环境变量
  • 许可证的总结
  • 不同版本之间的差异

有了这些信息,这个黑盒子就变得非常清晰,你就确切地知道每个构建中都有什么,是谁在什么时候放在那里的。

让我们集成Artifactory与您的无人机CI工作流程

在下面的逐步示例中,我们将向您展示如何使用JFrog CLI使用无人机和人工工厂之间的集成。在本例中,我们将使用,但是您也可以很容易地使用其他示例中的另一个包类型GitHub上的项目示例库

1.克隆这GO样例项目到你自己的Github仓库,并在你的Drone服务器上激活这个仓库,如下所示:
无人机io和JFrog Artifactory

2.从屏幕右上角的菜单中,选择“Secret”并配置您的Artifactory凭据和GO项目中的存储库名称:
ARTIFACTORY_URL:https://artifactory.mycompany.com/artifactoryARTIFACTORY_USER:管理ARTIFACTORY_PASS:密码REPOSITORY_KEY:这个示例Go项目的构建输出在Artifactory中的目标存储库的名称:
无人机io和JFrog Artifactory

3.提交无人机。项目根目录下的Yml配置文件:

管道:
构建:
图片:golang
secrets: [ARTIFACTORY_PASSWORD, ARTIFACTORY_USER, ARTIFACTORY_URL, REPOSITORY_KEY]
命令:
- echo $GOPATH
-去找-u golang.org/x/vgo
- export vgo=$GOPATH/bin/vgo
- CD你好
#下载JFrog CLI
- curl - fl https://getcli.jfrog.io | sh . 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 rt go build - no-registry
- ls -ll $GOPATH/src/mod . sh
- ./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中的作业以查看构建过程和日志无人机io和JFrog Artifactory

5.构建作业完成后,导航到工件存储库浏览器在Artifactory中查看已发布的工件:无人机io和JFrog Artifactory

6.中的构建信息构建浏览器无人机io和JFrog Artifactory

单击任何Build ID以获得完全复制该构建所需的所有信息。

晶莹剔透。

准备好使用Drone.io进行完全可跟踪的构建了吗?