繁体   English   中英

在 CI 中发布 pub.dev package 的最简单方法是什么?

[英]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服务器将FlutterDart包发布到pub.dev

假设您有以下需求:

  1. 一个 Flutter package 准备发布。
  2. pub.dev上的活跃帐户。
  3. GitHub上具有管理员访问权限的存储库。
  4. 一台可以工作的笔记本电脑、互联网连接和一些耐心!

这些是要遵循的步骤:

  1. 检索pub.dev的登录凭据
  2. GitHub上创建秘密
  3. 编写 shell 脚本来设置凭据
  4. GitHub 动作创建一个工作流来发布一个 package。
  5. 触发构建。

运行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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM