GitHub Actions自动发布Package到Pub.dev

news/2024/12/28 17:06:27/

一、创建package或plugin

先创建一个package或者plugin

二、手动上传第一个版本到pub.dev

flutter packages pub publish --server=https://pub.dartlang.org

三、在admin配置自动化发布

打开pub.dev中的对应的package按照以下图片配置
在这里插入图片描述

在这里插入图片描述

四、在项目跟目录配置发布脚本

1、在项目根目录创建 .github/workflows/publish.yml文件在这里插入图片描述
2、文件脚本如下:

name: Publish to Pub.dev# 流程触发时机,create当有标签tag创建时触发,如 v1.0.0。当然也可以选择别的触发时机,如 push,release 等
on: create
#  push:
#    branches:
#      - masterjobs:publishing:runs-on: ubuntu-lateststeps:# 拉取仓库代码- name: "Checkout"uses: actions/checkout# 发布插件- name: Dart and Flutter Package Publisheruses: k-paxian/dart-package-publisherwith:accessToken: ${{ secrets.OAUTH_ACCESS_TOKEN }}refreshToken: ${{ secrets.OAUTH_REFRESH_TOKEN }}suppressBuildRunner: trueflutter: trueskipTests: trueforce: true

k-paxian/dart-package-publisher的参数请看GitHub:dart-package-publisher

五、在github的项目设置中设置token

1、打开github中对应项目的setting
在这里插入图片描述
在这里插入图片描述
2、分别添加token:OAUTH_ACCESS_TOKEN和OAUTH_REFRESH_TOKEN
在文件目录找到pub-credentials复制这两个token
On Mac OS:

~/Library/Application Support/dart/pub-credentials.json

On Windows:

%APPDATA%/dart/pub-credentials.json

六、测试

1、提交代码或者创建tag测试CI脚本执行是否发布成功

git tag v0.4.0
git push --tags

在这里插入图片描述

七、报错

Package validation found the following potential issue:
374* `dart analyze` found the following issue(s):
375  Analyzing lib, pubspec.yaml...
376  
377  warning - lib/version_xupdate/utils/common.dart:89:32 - The '!' will have no effect because the receiver can't be null. Try removing the '!' operator. - unnecessary_non_null_assertion
378  warning - lib/version_xupdate/utils/common.dart:91:19 - The '!' will have no effect because the receiver can't be null. Try removing the '!' operator. - unnecessary_non_null_assertion
379     info - lib/version_xupdate/dialog/number_progress.dart:29:3 - Constructors in '@immutable' clas[...]e identifier. Try changing the name to follow the lowerCamelCase style. - constant_identifier_names
380     info - lib/zupdate.dart:86:3 - The constant name 'DOWNLOAD_ERROR' isn't a lowerCamelCase identifier. Try changing the name to follow the lowerCamelCase style. - constant_identifier_names
381     info - lib/zupdate.dart:91:3 - The constant name 'CHECKSUM_ERROR' isn't a lowerCamelCase identifier. Try changing the name to follow the lowerCamelCase style. - constant_identifier_names
382  
383  37 issues found.
384
385Package has 1 warning.
386pub finished with exit code 65
387Error: Dry 🏃 Failed, skip real publishing.

解决办法:脚本中with需要设置参数:force: true


http://www.ppmy.cn/news/55428.html

相关文章

C++ 树进阶系列之探讨深度搜索算法查找环的细枝末节

1. 前言 对于基环树的讲解,分上、下 2 篇,上篇以理解连通分量、环以及使用深度搜索算法检查连通性和环为主,下篇以基于基环树结构的应用为主。 什么是基环树? 所谓基环树指由n个节点n条边所构建而成的连通图。 如下图所示&…

在前端开发中,什么样的代码会导致性能很低?

从前端来看页面的卡顿是最为影响用户体验的,而好的代码是保证页面平稳高性能运行的基石,前端页面卡顿的原因有很多,可以从渲染机制和运行分成两大类: (1)渲染不及时,页面掉帧 (2&a…

读研读博不emo

文章目录 起因积极走出封闭的孤独经历一——去心理健康中心看看书 原因剖析解决思路 好久没更b站, 起因 起因是这样的,在自己读研的研一下学期。也遭遇到了年以来的第一次心态发生有点压抑的情况吧。其实第一学期因为我遇到了很好的导师,然后…

Haproxy搭建web群集

一、常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件: 软件通常使用开源的LVS、Haproxy、 Nginx: LVS性能最好,但是搭建相对复杂;Nginx 的upstream模块支持群集功能,但是对群集节点健康检查功能不强&am…

java quartz 定时任务框架

Java中实现定时任务的几种方式: Timer: java.util.Timer, 一个JDK自带的处理简单的定时任务的工具ScheduledExecutorService: java.util.concurrent.ScheduledExecutorService, JDK中的定时任务接口,可以将定时任务与线程池结合使用Sceduled: org.springframework.scheduling.…

浙江省区块链数字资产登记中心筹备会议顺利举行

4月25日下午,由浙江省区块链技术应用协会主办、西溪谷管委会、西湖区网联会协办的“浙江省区块链数字资产登记中心筹备会议”在西湖蚂蚁小镇多功能厅顺利举行。 出席本次筹备会议的有中国电子技术标准化研究院区块链研究室主任、IEEE 计算机 协会区块链和分布式记帐…

【Python | 基础语法篇】02、标识符、运算符、字符串扩展及数据输入

目录 一、标识符 1.1 什么是标识符 1.2 标识符命名规则 1.2.1 标识符命名规则 - 内容限定 1.2.2 标识符命名规则 - 大小写敏感 1.2.3 标识符命名规则 - 不可使用关键字 1.3 案例演示 1.4 变量命名规范 1.4.1 变量命名规范 - 见名知意 ​1.4.2 变量命名规范 - 下划线…

易观千帆 | 金融机构如何保证用户体验长期可持续?

易观:用户体验正逐渐成为金融机构的命脉。 数字经济时代的到来,金融机构面临着来自内部和外部的双重压力。一方面,互联网金融企业凭借强大的技术能力以及人才优势,通过互联网运营的模式迅速响应客户需求,吸引了大量用户…