GitHub Actions自动发布Package到Pub.dev

news2025/1/21 13:00:39

一、创建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:
#      - master

jobs:
  publishing:
    runs-on: ubuntu-latest
    steps:
      # 拉取仓库代码
      - name: "Checkout"
        uses: actions/checkout
      # 发布插件
      - name: Dart and Flutter Package Publisher
        uses: k-paxian/dart-package-publisher
        with:
          accessToken: ${{ secrets.OAUTH_ACCESS_TOKEN }}
          refreshToken: ${{ secrets.OAUTH_REFRESH_TOKEN }}
          suppressBuildRunner: true
          flutter: true
          skipTests: true
          force: 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.coloradmin.cn/o/468951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XMLMapperBuilder解析*mapper.xml

springboot的MybatisAutoConfiguration自动配置类会创建SqlSessionFactory,创建过程就是填充configuration属性,调用buildSqlSessionFactory()方法完成SqlSessionFactory创建,这其中就会创建XMLMapperBuilder解析mapper.xml和XMLConfigBuilde…

UHD在DPDK下进行编译

1.安装choco windows环境,用管理员权限打开 powershell 命令行界面。 输入命令:Set-ExecutionPolicy AllSigned 继续输入命令:Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]…

C++---区间DP/高精度计算---凸多边形的划分(每日一道算法2023.4.27)

注意事项: 本题是"区间DP—能量项链"的扩展题,可以先理解下那道题。 本题使用了"高精度乘法"和"高精度加法",可以去这两篇文章看,有详解。 题目: 给定一个具有 N 个顶点的凸多边形&…

什么是SSO?

SSO(Single Sign On)单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 当…

中山大学_程序设计新手赛2023_4题的小朋友_总结

送自己一句话:即使生活很不顺利,也不要成为一个连自己都讨厌的人 那样,当你有一天回首过往,只不过是在演戏中匆匆做过这一生 题目:见我上传的资源 A:关于时间复杂度 解: 1.关键: 法一&…

前端开发之axios请求封装详细讲解

前端开发之axios请求封装 前言1、安装axios2、创建公共文件request3、导入axiso4、初始化axios5、axios请求拦截器6、axios响应拦截器7、handleData:处理请求后来的response8、CODE_MESSAGE:code信息 前言 在vue项目中,和后台交互获取数据这…

openEuler社区人才评定考试流程指引

最近因为公司工作的需要参加考试了openEuler社区人才评定考试,本次考试题型主要包括单选、多选、判断三类题型。考试内容基本都是操作系统使用相关的内容。 考试需要注意事项: 1.考试为线上答题考试,需开启摄像头。 2.考试期间请保持周围环…

SQL server增删改查(1)

SQL server数据类型 整数型: BIGINT INT SMALLINT 小数型: FLOAT DOUBLE 文本型: CHAR VARCHAR NCHAR NVARCHAR TEXT 日期和时间类型 DATE TIME DATETIME 布尔型: BIT 数据类型含义INT长整数(也可以写作INTEGER)SMALLINT短整数CHAR(n)长度为n的定长字符串, 不足n个字符的空白部…

Scala语言入门以及基本语法

文章目录 前言1.环境搭建1) IDEA中插件下载2) SDK下载配置 2.基本使用1)var与val的区别2) .基本数据类型3).字符串的基本用法4) 控制结构1) if else2) for 循环3) while循环 5)类6) 函数 前言 scala在一种简洁的高级语言中结合了面向对象和函数式编程。Scala的静态…

8个免费的PNG素材网站推荐

很多设计小白都不知道什么是PNG。事实上,PNG是一种支持透明度的图像格式。当你想在设计中将图像与背景或文本混合时,它就会派上用场。 如果你没有时间为你正在处理的设计创建透明的PNG图像,你也可以使用我收集的PNG素材网站,以便…

【Linux从入门到精通】Linux常用基础指令(中)

本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上))进行详解。本章的指令相对较为重要,使用频率较高,难度相对上篇文章较难,也较为复杂。希望能对你的理解有所帮助。 文章目录 一…

(Open AI 极简教程)ChatGPT注册登录常见问题及其解决方法最全总结

好久没有更新过技术类的文章了,临近五一假期,首先祝大家假期游玩愉快,也希望本篇文章能够对你有所帮助,今天这篇博客将会把ChatGPT注册中可能遇到的问题彻头彻尾的讲一下,如果感觉有帮助的话就动动你发财的小手点个收藏…

蓝奥声核心技术分享——一种无线低功耗配置技术

1.技术背景 无线低功耗配置技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域,具体主要涉及网络服务节点…

3.龙芯2k1000 builroot文件系统编译过程

3.龙芯2k1000 builroot文件系统编译过程 文章目录 3.龙芯2k1000 builroot文件系统编译过程(一)、在Ubuntu环境下载并配置交叉编译链(与内核编译工具链相同)(二)、下载buildroot源码(三&#xff…

【Linux命令篇】正则表达式浅析

前言 转义字符是将普通字符转化为特殊字符的一种方式。 在正则表达式中,一些字符被定义为特殊字符(也称为元字符),它们具有特殊的含义。这些特殊字符包括: 句点字符 .:可以匹配除了换行符以外的任何单个…

JavaScript经典教程(四)-- JavaScript基础 - BOM、打印、window对象等详解

184:JavaScript基础 - BOM、打印、window对象等详解 185:JavaScript基础 - 数据类型Number及运算符号 1、关键字 (3)alert - 警告窗 原型:window.alert(); alert实际上是一个函数 注:alert无法弹出部分…

Figma如何导出jpg格式?

在这个追求效率和质量的时代,Figma确实可以加快我们的设计工作,增加效率,功能越来越强大。然而,Figma从未有过中文版本。 但就使用工具而言,一次生两次并不难。设计小白经常卡在最后一步,如何用Figma导出j…

【Paper】2022_基于自适应事件触发控制的一般线性多智能体系统的一致性_田昌源

田昌源. 基于自适应事件触发控制的一般线性多智能体系统的一致性[D].青岛大学,2022.DOI:10.27262/d.cnki.gqdau.2022.002546. 文章目录 第五章 一般线性多智能体系统的自适应事件触发二分一致性5.1 系统模型5.2 自适应事件触发二分一致性5.2.1 无领导一致性5.2.2 领导-跟随一致…

JDK的环境配置(超级详细教程)

JDK的环境配置——超详细教程 一、下载java安装包 我们可以去官网下载java,进入官网页面,然后点击Download Java。 网站:https://developer.oracle.com/languages/java.html 里面有各种版本的jdk可供选择。 二、安装JDK 这里我选择安装…

Android实现一个带清除和提交按钮的清爽圆角搜索框

运行效果&#xff1a; 放入Toolbar的效果 清除按钮有内容才显示&#xff1a; 下面是教程&#xff1a; 实现一个圆角搜索框&#xff0c;可以使用CardView来实现&#xff0c;同时可以添加一个EditText和两个ImageView作为清除和提交按钮。 activity_main <?xml version&quo…