向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.:此命令将注册表设置为将用于的URL
npm
CLI。 - 使用注册表进行身份验证:此命令将设置
authToken
被…使用npm
CLI指向在项目设置中配置的环境变量。 - 发布套餐:将包发布到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以及如何上传,删除,并在跨读库中宣传包。