我试图使用dart pub publish
在Github Actions中自动发布一个包,但我需要登录。登录工作流需要用户交互(通过Google登录),因此不能在配置项上使用。
根据https://github.com/dart-lang/pub/issues/2227,似乎没有一个简单的方法,但有人提到:
不得不把路径像run: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
。
- 编辑**:在Windows上,
2条答案
按热度按时间yqyhoc1h1#
This medium post有一个清晰的指南,可以帮助您通过CI-CD服务器将Flutter或Dart包发布到pub.dev。
假设您有以下要求:
1.准备发布的Flutter包。
1.一台能用的笔记本电脑,互联网连接,还有一些耐心!
以下是要遵循的步骤:
1.检索pub.dev的登录凭据
1.在GitHub上创建秘密
1.编写一个shell脚本来设置凭据
1.为GitHub Action创建发布包的工作流。
1.触发构建。
运行
pub publish
时请注意:当我们第一次在终端中运行这个命令时,
pub
会要求我们通过打开命令行上打印的URL来登录pub.dev帐户。使用该URL登录后,pub
将一些登录凭据(恰好是一些令牌)存储到名为credentials.json
的文件中。下次运行
pub publish
命令时,它会检查该文件并继续进行操作,而不要求再次登录。这给了我一个提示,要使它在CI-CD服务器上工作,我们需要在构建机器上以某种方式创建这个文件。你可以访问博客"Publish Your Flutter/Dart Package using GitHub Actions"以了解上面提到的每个步骤的更多细节。
ecfdbz9o2#
现在支持此功能
https://dart.dev/tools/pub/automated-publishing
由于stackoverflow规则要求,我不能在这里发布解释,因为这太长了,将来可能会改变。