我怎样才能在 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 实例。
我自己没试过。可能还有其他要求。
感谢评论,我发现以下确实解决了问题...
- 在
.travis.yml
中添加了一个部分来设置部署脚本,因为我弄乱了标签示例,我只为这个示例更改了分支
deploy:
provider: script
script: ./tool/publish.sh
on:
branch: master
- 设置一些
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
- 在 travis 设置中为 repo 设置 env 变量,禁用 show in build。
现在唯一的问题是它是否在到期后有效...
我想知道是否有人可以提供一个很好的答案:
如何在部署步骤中在 https://pub.dartlang.org/ 上发布 dart 包,例如在某个标签甚至指定的分支上?
我认为我可以 运行 作为提供者的脚本,但我猜我认为发布需要访问令牌?它不是很清楚,所以我决定在这里问。对于更详细的上下文,我的项目是 here,我想标记一个版本并让它像 npm 版本一样发布。
谢谢。
您需要签出标签或分支,然后您可以使用该目录中的 pub publish
进行发布。您需要将 ~/.pub-cache/credentials.json
设为 travis 实例。
我自己没试过。可能还有其他要求。
感谢评论,我发现以下确实解决了问题...
- 在
.travis.yml
中添加了一个部分来设置部署脚本,因为我弄乱了标签示例,我只为这个示例更改了分支
deploy: provider: script script: ./tool/publish.sh on: branch: master
- 设置一些
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
- 在 travis 设置中为 repo 设置 env 变量,禁用 show in build。
现在唯一的问题是它是否在到期后有效...