向packagecloud发布软件包

Packagecloud是一个托管包存储库服务。它允许用户托管npm、Java/Maven、python、apt、yum和rubygem库,而无需任何预配置。

配置环境变量

设置PACKAGECLOUD_TOKEN美元

在Circleci中的项目设置下,使用名称创建一个环境变量PACKAGECLOUD_TOKEN,包含PackageCloud API令牌的值。此环境变量将用于直接与PackageCloud API进行身份验证,或使用PackageCloud CLI对。

与存储库交互时,PackageCloud CLI将自动从系统中读取此环境变量。

另外,如果您希望将敏感的环境变量签入到git中,但是要加密,您可以遵循在circleci /加密的文件

设置$ packageCloud_url.packagecloud:企业金宝博娱乐官网网址

只设置了$ packageCloud_url.如果您是PackageCloud:企业客户金宝博娱乐官网网址

此设置仅适用于PackageCloud:Enterprise客户。金宝博娱乐官网网址在Circleci的项目设置下,设置$ packageCloud_url.环境变量到PackageCloud的URL:Enterprise安装。金宝博娱乐官网网址

安装packageCloud CLI

要从Circleci使用PackageCloud CLI,请通过添加以下内容来使用RubyGems运行一步到你.circleci / config.yml.在配置为部署包的作业下:

-运行:name: Install packagecloud CLI命令:gem Install package_cloud

CLI将自动使用PACKAGECLOUD_TOKEN美元环境变量对PackageCloud服务进行身份验证。

使用缓存的依赖

如果要缓存构建之间的此依赖性,则可以添加package_cloud宝石到A.Gemfile并关注Circleci的指南缓存的依赖关系

使用packagecloud CLI推送包

构建包类型的过程会有所不同,但是将它们推入packagecloud存储库非常简单。若要从CircleCI构建向存储库添加包,请在您的部署使用PackageCloud CLI的配置。

下面是一个完整的示例.circleci / config.yml.这将签出一个git存储库,运行一个使task(此命令可以是任何配置来构建包的命令),然后将包部署到packagecloud repo。

2默认值&默认值working_directory~ /回购码头工人-图片杰西circleci / ruby: 2.3验证用户名mydockerhub-user.密码DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用职位构建<<*默认值脚步-结帐-运行的名字建立包裹命令使-persist_to_workspace~ /回购路径部署<<*默认值脚步-Attach_Workspace.~ /回购-运行的名字安装packagecloud cli.命令GEM安装package_cloud.-运行的名字推动deb包命令package_cloud push example-user/example-repo/debian/jessie debs/packagecloud-test_1.1-2_amd64.deb工作流程2package-deploy职位-构建-部署需要-构建

部署npm

Circleci用户可以直接部署到PackageCloud托管的NPM注册表中。

配置测试作业

该作业将检索项目代码,安装它的依赖项,并在NodeJS项目中运行任何测试:

职位测试<<*默认值脚步-结帐-restore_cache钥匙-V1依赖性 - 。#退回使用最新的缓存,如果没有找到确切的匹配-v1-dependencies --运行NPM安装-运行的名字运行测试命令npm测试-save_cache.路径-node_modules.关键v1-dependencies --persist_to_workspace~ /回购路径

配置部署作业

配置的下一个作业是部署作业。此作业将验证并发布到PackageCloud NPM注册表:

职位部署<<*默认值脚步-Attach_Workspace.~ /回购-运行的名字设置注册表URL.命令npm set注册表https://packageCloud.io/example-user/example-repo/npm/-运行的名字使用注册表进行身份验证命令echo“//packageCloud.io/example-user/example-repo/npm/:_authtoken = hwackageCloud_token”>〜/ repo / .npmrc-运行的名字发布套餐命令NPM发布
  • 设置注册表URL.:此命令将注册表设置为将用于的URLnpmCLI。
  • 使用注册表进行身份验证:此命令将设置authToken被…使用npmCLI指向在项目设置中配置的环境变量。
  • 发布套餐:将包发布到PackageCloud上配置的NPM注册表。

packagecloud npm注册表URL的格式如下:

https://packageCloud.io/:Username/:Repo_name/npm/

全部.circleci / config.yml.应该看起来像这样:

2默认值&默认值working_directory~ /回购码头工人-图片Circleci / node:8.9.1验证用户名mydockerhub-user.密码DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用职位测试<<*默认值脚步-结帐-restore_cache钥匙-V1依赖性 - 。#退回使用最新的缓存,如果没有找到确切的匹配-v1-dependencies --运行NPM安装-运行的名字运行测试命令npm测试-save_cache.路径-node_modules.关键v1-dependencies --persist_to_workspace~ /回购路径部署<<*默认值脚步-Attach_Workspace.~ /回购-运行的名字设置注册表URL.命令npm set注册表https://packageCloud.io/example-user/example-repo/npm/-运行的名字使用注册表进行身份验证命令echo“//packageCloud.io/example-user/example-repo/npm/:_authtoken = hwackageCloud_token”>〜/ repo / .npmrc-运行的名字发布套餐命令NPM发布工作流程2测试部署职位-测试-部署需要-测试

工作流部分将两者联系在一起测试部署作业进入构建过程中的顺序步骤。

您可以了解有关在Circleci博客文章上的PackageCloud的“发布NPM”包装的更多信息:使用Circleci 2.0发布NPM包

使用packagecloud API

PackageCloud还提供了一种用于管理包存储库的强大API。你可以了解更多关于这个问题packagecloud API以及如何上传,删除,并在跨读库中宣传包。

也可以看看

存储和访问工件