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_deployafter_deploy 阶段。只有在 Travis CI 实际部署时才会触发这些阶段。

before_deploy: "echo 'ready?'"
deploy:
  ..
after_deploy:
  - ./after_deploy_1.sh
  - ./after_deploy_2.sh