Cargo 发布
此页面记录了使用 dpl v1 进行部署,该版本当前为默认版本。下一个主要版本 dpl v2 将很快发布,我们建议您开始使用它。请参阅 我们的博文 获取详细信息。 dpl v2 文档可以在此处找到。
Travis CI 可以在构建成功后自动将您的 Rust 包发布到 crates.io。(将来可能会支持其他注册表)。
发布到 crates.io 的最小 .travis.yml
配置如下所示
language: rust
deploy:
provider: cargo
token: "YOUR_API_TOKEN"
crates.io API 令牌 #
可以通过登录您的 crates.io 帐户并在 https://crates.io/me 生成新的令牌来获取 API 令牌。
始终 加密 您的 API 令牌。假设您已安装 Travis CI 命令行客户端,您可以像这样操作
$ travis encrypt YOUR_API_TOKEN --add deploy.token
要发布的内容 #
很有可能,您只希望在创建新版本包时才部署到 crates.io。为此,您可以告诉 Travis CI 仅在标记的提交上进行部署,如下所示
deploy:
...
on:
tags: true
如果您在本地标记提交,请记住运行 git push --tags
以确保您的标签已上传到 GitHub。
您可以使用 on 选项显式指定要从中发布的分支
deploy:
...
on:
branch: production
或者,您还可以配置 Travis CI 从所有分支发布
deploy:
...
on:
all_branches: true
从 Pull Request 触发的构建永远不会触发发布。
发布构建工件 #
在您的测试运行完毕且在发布之前,Travis CI 将清理您所做的任何其他文件和更改。
这是必要的,因为 Cargo 将拒绝从脏工作目录发布包(将来可能会在此提供程序中添加一个允许此操作的选项)。
在部署前后运行命令 #
有时您希望在部署之前或之后运行命令。您可以为此使用 before_deploy
和 after_deploy
阶段。只有在 Travis CI 实际部署时才会触发这些阶段。
before_deploy: "echo 'ready?'"
deploy:
..
after_deploy:
- ./after_deploy_1.sh
- ./after_deploy_2.sh