[英]What is the easiest way to publish a pub.dev package in a CI?
我正在尝试使用dart pub publish
在 Github Actions 中自动发布 package 但为此我需要登录。 登录工作流程需要用户交互(通过 Google 登录),因此不能用于 CI。
根据https://github.com/dart-lang/pub/issues/2227似乎没有简单的方法,但有人提到:
必须像运行这样的路径:
echo ${{secrets.PUB_CREDENTIALS}} > /opt/hostedtoolcache/flutter/1.9.1-hotfix.2-stable/x64/.pub-cache/credentials.json
并不是很好维持。
credentials.json
的格式是否已知?
编辑:在 Windows 上, the credentials.json
文件不在C:\Users\<USER>\AppData\Roaming\Pub\Cache\credentials.json
中,如博文中所示,它现在位于C:\Users\<USER>\AppData\Roaming\dart\pub-credentials.json
。
这篇中篇文章有一个清晰的指南,可以帮助您通过CI-CD服务器将Flutter或Dart包发布到pub.dev 。
假设您有以下需求:
这些是要遵循的步骤:
运行pub publish
时注意这一点:
当我们第一次在终端中运行这个命令时,
pub
会要求我们通过打开命令行上打印的URL来登录我们的pub.dev帐户。 一旦我们使用 URL 登录,pub
将一些登录凭据(恰好是一些令牌)存储到一个名为credentials.json
的文件中。下次当您运行
pub publish
命令时,它会检查此文件并继续进行,而不会再次要求登录。 这给了我一个提示,要让它在CI-CD 服务器上运行,我们需要以某种方式在构建机器上创建这个文件。
您可以访问博客“ Publish Your Flutter/Dart Package using GitHub Actions ”以获取有关上述每个步骤的更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.