使用CircleCI和Artifactory完全可复制的构建

使用CircleCI和Artifactory完全重现构建

大多数人可能都熟悉下面的场景。你可以使用CircleCI来构建一个NPM包公共NPM注册表.突然,您发现您的包包含一个主要的错误!您需要快速回滚到以前的版本,但是发现以前版本的一个依赖项没有发布npmjs包所有者,现在您的构建不再是可复制的。你会怎么做?

这正是发生在NPM门.开源贡献者,未发表一个开源模块,它打破了成千上万的构建,使用他的模块作为依赖。

CircleCI是一个基于云的持续集成和交付平台。对于开源存储库来说,它是免费的,并且支持大多数语言。它使开发人员能够通过构建软件来快速测试更改,而无需管理CI服务器。然而,使用此解决方案时的主要挑战之一是为将来的分发存储构建构件。

这篇博客文章描述了如何继续使用CircleCI创建完全可复制的构建,而不用担心丢失依赖,通过使用私有JFrog Artifactory存储库管理器来存储构建的工件和构建信息。

CircleCI获取NPM依赖项,并将创建的NPM包从/发布到公共NPM注册表。

CircleCI和NPM注册表

当将JFrog Artifactory整合到你的构建过程中时,CircleCI从Artifactory中获取NPM依赖项并缓存它们。然后,它将创建的NPM包连同构建信息发布到Artifactory。所有开发人员都可以使用已发布的包及其构建信息。

CircleCI, NPM registry和JFrog Artifactory

配置CircleCI将构建构件推送到JFrog Artifactory

让我们仔细看看这是如何工作的。下面的示例描述了如何轻松地配置CircleCI,以使用将Maven构建作为工件推送到ArtifactoryJFrog CLI

步骤1:克隆示例存储库

在GitHub/Bitbucket中创建一个存储库。

克隆这个示例GitHub项目到你的git存储库。

步骤2:创建CircleCI配置文件

这里,我们使用JFrog CLI将创建的工件和构建信息上传到Artifactory。

机:java:版本:openjdk7依赖关系:覆盖:- MVN——fail-never dependency:go-offline || true前:#安装JFrog CLI- wget https://dl.bintray.com/jfrog/jfrog-cli-go/1.7.1/jfrog-cli-linux-amd64/jfrog- chmod +x jfrog编译:覆盖:—MVN clean install使用Artifactory实例的参数配置JFrog CLI- ./jfrog rt config——url $ARTIFACTORY_URL——user $ARTIFACTORY_USER——apikey $ARTIFACTORY_PASSWORD#使用JFrog CLI上传工件到Artifactory- ./jfrog rt u "multi*/*.jar" circleci-generic-local——build-name=circleci-generic-artifactory——build-number=$CIRCLE_BUILD_NUM——flat=false- ./jfrog rt u "multi*/*. txtcircle -generic-local——build-name=circle -generic-artifactory——build-number=$CIRCLE_BUILD_NUM——flat=false#收集环境变量并将它们附加到构建中。- ./jfrog rt bce circle_generic -artifactory $CIRCLE_BUILD_NUM#发布构建信息到Artifactory。- ./jfrog rt bp circle_generic -artifactory $CIRCLE_BUILD_NUM . txt

步骤3:配置Artifactory凭据

通过将ARTIFACTORY_URL、ARTIFACTORY_USERNAME和ARTIFACTORY_PASSWORD环境变量添加到构建设置中,在CircleCI中启用项目构建。

例如:
ARTIFACTORY_URL =https://artifactory.mycompany.com/artifactory
ARTIFACTORY_USERNAME = admin
ARTIFACTORY_PASSWORD =密码

配置Artifactory凭证

步骤4:在JFrog Artifactory中查看您发布的工件

一旦您运行了一个构建,您应该能够在Artifactory中看到可用的已发布的工件。

工件存储库浏览器

步骤5:查看已发布的构建信息

您可以在Artifactory的网站上查看构建的详细信息构建浏览器单击任何版本以下钻查看所有版本构建信息,JFrog Artifactory捕获。

构建浏览器

就是这样!你就完成了。

不同包类型的可复制构建

Artifactory支持大多数与CircleCI兼容的包格式,这意味着您可以获得各种包类型的详细构建信息,例如:

Generic Artifacts解决方案适用于任何不同的包格式。

使用CircleCI进行持续集成非常棒,它提供了云服务的所有好处。添加Artifactory完成了图像,为您提供了存储构建的位置,并且使用Artifactory生成的详尽构建信息,您现在可以使用CircleCI拥有完全可重复的构建。

访问JFrog Artifactory用户指南了解更多信息构建集成

开始JFrog Artifactory,并开始保存您的构建工件今天