我怎样才能在 travis ci 部署上发布 pub

How can I dart pub publish on travis ci deploy

我想知道是否有人可以提供一个很好的答案:

如何在部署步骤中在 https://pub.dartlang.org/ 上发布 dart 包,例如在某个标签甚至指定的分支上?

我认为我可以 运行 作为提供者的脚本,但我猜我认为发布需要访问令牌?它不是很清楚,所以我决定在这里问。对于更详细的上下文,我的项目是 here,我想标记一个版本并让它像 npm 版本一样发布。

谢谢。

您需要签出标签或分支,然后您可以使用该目录中的 pub publish 进行发布。您需要将 ~/.pub-cache/credentials.json 设为 travis 实例。

我自己没试过。可能还有其他要求。

感谢评论,我发现以下确实解决了问题...

  1. .travis.yml 中添加了一个部分来设置部署脚本,因为我弄乱了标签示例,我只为这个示例更改了分支
  deploy:
    provider: script
    script: ./tool/publish.sh
    on:
      branch: master
  1. 设置一些 publish.sh 将 json 写出
#!/usr/bin/env bash
mkdir -p .pub-cache

cat <<EOF > ~/.pub-cache/credentials.json
{
  "accessToken":"$accessToken",
  "refreshToken":"$refreshToken",
  "tokenEndpoint":"$tokenEndpoint",
  "scopes":["$scopes"],
  "expiration":$expiration
}
EOF

pub publish -f
  1. 在 travis 设置中为 repo 设置 env 变量,禁用 show in build。

现在唯一的问题是它是否在到期后有效...