Bintray 部署
此页面记录了使用下一个主要版本 dpl v2 的部署,该版本目前处于 Beta 发布阶段。请参阅 我们的博文 获取详细信息。当前默认版本为 dpl v1。请查看 此处提供的 dpl v1 文档。
请务必阅读 v2 部署概述。
Travis CI 可以在构建成功后自动将构建工件上传到 Bintray。
对于最小配置,请将以下内容添加到您的 .travis.yml
中
deploy:
provider: bintray
user: <user>
key: <encrypted key>
file: <file>
edge: true # opt in to dpl v2
状态 #
对 Bintray 部署的支持是 *稳定的*。
已知选项 #
使用以下选项进一步配置部署。
用户 |
Bintray 用户 — **必需**,类型:字符串 |
密钥 |
Bintray API 密钥 — **必需**,**机密**,类型:字符串 |
文件 |
Bintray 上传描述符文件的路径 — **必需**,类型:字符串 |
密码 |
在 Bintray 上配置的密码(如果使用 GPG 签名)— 类型:字符串 |
共享选项 #
清理 |
在部署之前清理 Git 工作目录中的构建工件 — 类型:布尔值 |
运行 |
在部署成功完成后执行的命令 — 类型:字符串或字符串数组 |
环境变量 #
如果所有选项以 BINTRAY_
为前缀,则可以作为环境变量提供。
例如,key
可以作为 BINTRAY_KEY=<key>
提供。
保护机密 #
机密选项值应作为构建配置(.travis.yml
文件)中的加密字符串或存储库设置中的环境变量提供。
环境变量可以在存储库的设置页面上设置,或者使用 travis env set
设置。
travis env set BINTRAY_KEY <key>
为了在将选项值添加到 .travis.yml
文件时对其进行加密,请使用 travis encrypt
travis encrypt <key>
或者使用 --add
直接将其添加到 .travis.yml
文件中。请注意,此命令必须在存储库的根目录中运行。
travis encrypt --add deploy.key <key>
描述符文件 #
描述符采用 JSON 文件格式,分为三个部分。
{
"package": {
"name": "auto-upload",
"repo": "myRepo",
"subject": "myBintrayUser",
"desc": "I was pushed completely automatically",
"website_url": "www.jfrog.com",
"issue_tracker_url": "https://github.com/bintray/bintray-client-java/issues",
"vcs_url": "https://github.com/bintray/bintray-client-java.git",
"github_use_tag_release_notes": true,
"github_release_notes_file": "RELEASE.txt",
"licenses": ["MIT"],
"labels": ["cool", "awesome", "gorilla"],
"public_download_numbers": false,
"public_stats": false,
"attributes": [
{ "name": "att1", "values" : ["val1"], "type": "string" },
{ "name": "att2", "values" : [1, 2.2, 4], "type": "number" },
{ "name": "att5", "values" : ["2014-12-28T19:43:37+0100"], "type": "date" }
]
},
"version": {
"name": "0.5",
"desc": "This is a version",
"released": "2015-01-04",
"vcs_tag": "0.5",
"attributes": [
{ "name": "VerAtt1", "values" : ["VerVal1"], "type": "string" },
{ "name": "VerAtt2", "values" : [1, 3.3, 5], "type": "number" },
{ "name": "VerAtt3", "values" : ["2015-01-01T19:43:37+0100"], "type": "date" }
],
"gpgSign": false
},
"files": [
{
"includePattern": "build/bin(.*)*/(.*\\.gem)",
"excludePattern": ".*/do-not-deploy/.*",
"uploadPattern": "gems/$2"
},
{
"includePattern": "build/docs/(.*)",
"uploadPattern": "docs/$1",
"listInDownloads": true
}
],
"publish": true
}
包部分 #
Bintray 包信息。以下信息在开源项目中是必需的。
name
是 Bintray 包名称。repo
是 Bintray 存储库名称。subject
是 Bintray 主题,可以是用户或组织。vcs_url
是 Bintray 版本控制系统 URL,例如 GitHub 存储库 URL。licenses
是 Bintray 许可证,它是一个至少包含一个项目的列表。
版本部分 #
包版本信息。如果版本已存在于 Bintray 上,则仅 name 字段是必需的。
文件部分 #
配置要上传到 Bintray 的文件及其上传路径。
您可以定义一个或多个模式组。每个组包含三个模式。
includePattern
:采用 Ruby 正则表达式形式的模式,指示要上传到 Bintray 的文件路径。如果文件位于根目录中,则指示相对路径:\./
excludePattern
:可选。采用 Ruby 正则表达式形式的模式,指示要从 includePattern 指定的文件列表中删除的文件路径。uploadPattern
:Bintray 上的上传路径。路径可以包含 $1、$2 等形式的符号,这些符号将替换为 include 模式中定义的捕获组。
如果 listInDownloads
设置为 true
,则匹配的工件将显示在“下载列表”或“直接下载”中。这只能在发布的版本上执行,因此 publish
应设置为 true
。
在上面的示例中,上传以下文件:
- 位于
build/bin/
下的所有 gem 文件(包括子目录),但do-not-deploy
目录下的文件除外。这些文件将上传到 Bintray 的gems
文件夹下。 build/docs
下的所有文件。这些文件将上传到 Bintray 的docs
文件夹下,并显示在项目概述的下载列表中。
作为
includePattern
和excludePattern
属性一部分定义的正则表达式必须用括号括起来。
Debian 上传 #
当使用自动索引布局将工件上传到 Bintray 上的 Debian 存储库时,需要 Debian 发行版信息,并且必须指定该信息。该信息在描述符文件中通过 files 闭包中的 matrixParams 指定,如下例所示。
uploadPattern
应符合 bintray 自动布局方案。
"files": [
{
"includePattern": "build/bin/(.*\.deb)",
"uploadPattern": "pool/main/m/mypackage/$1",
"matrixParams": {
"deb_distribution": "vivid",
"deb_component": "main",
"deb_architecture": "amd64"
}
}
]
覆盖现有文件 #
如果给定名称的工件已存在于 Bintray 存储库中,则默认情况下不会覆盖它。如果要替换现有文件,请在矩阵属性中定义 override
密钥。
"files": [
{
"includePattern": "build/bin/(myfile.bin)",
"uploadPattern": "$1",
"matrixParams": {
"override": 1
}
}
]
Pull Request #
请注意,Pull Request 构建完全跳过部署步骤。