独家精品!git action发布electron成功的关键

news2024/12/23 18:49:12

首先来说git action真心是个坑爹货,使用起来太费劲了,各种报错一大堆。

再加上electron这个更坑爹的东西,二者合璧要把你累死一层皮。

昨天经过反复测试,通过无数次的失败,查找,试验,再失败,最后重要搞成功了。

这里跟各位分享一下成功的经验。

1. electron  exe文件的发布必须使用git action的windows平台。

   为什么,因为你如果在linux平台上发布的话,你费了好大劲写workflow文件,终于调试到构建的那一步发现:需要装wine, 但是成功不了!完全是浪费时间!

2. 必须安装windows-build-tools 而且必须 vs2015版,否则electron构建必然不成功!

npm install --global --production windows-build-tools --vs2015

但是这里有个坑点: 它在安装python的时候,要么会卡在,要么会进入success无限死循环。

解决办法:

    echo 'Closing installer. Return code: 3010.' > $env:TEMP\dd_client_.log

 

 3.  electron版本必须跟electron-builder版本匹配,否则构建exe一定不会成功!注意了!这个是关键!

报错一般都是这样的:

 

其他类型错误的解决方法,在我别的文章有介绍。

按照上面的方法,git action构建成功的样子是这样的:

 

 

最后附上我总结并测试成功的workflow文件:

name: Electron Build and Release

on:
  workflow_dispatch:

jobs:
  build-and-release:
    runs-on: windows-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '16'

      - name: Install windows-build-tools       
        run: |           
           echo 'Closing installer. Return code: 3010.' > $env:TEMP\dd_client_.log
           npm install --global --production windows-build-tools --vs2015
        

      - name: Install Dependencies
        run: |
          npm install --force



      - name: Build Electron
        env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          npm run build
          npm run packapp 

      - name: Find exe files and zip
        run: |
          cd build
          dir
          dir *.exe
          Compress-Archive -Path .\*.exe -DestinationPath your-file-name.zip # 把build目录下的exe文件压缩成zip
          
        

      - name: Get package version  # 通过package.json文件中的version字段获取发布版本号
        id: get_version
        run: echo "::set-output name=version::$(cat package.json | jq -r .version)"

      - name: Create Release
        id: create_release
        uses: actions/create-release@latest   
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
          RELEASE_VERSION: ${{ steps.get_version.outputs.version }}
        with:     
          tag_name: v${{ env.RELEASE_VERSION }} # 使用 package.json 中的版本号
          release_name: Release v${{ env.RELEASE_VERSION }}
          draft: false
          prerelease: false
 

         

      - name: Upload Release Assets
        id: upload-release-asset
        uses: actions/upload-release-asset@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}   
          RELEASE_VERSION: ${{ steps.get_version.outputs.version }} 
        with:       
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./build/your-file-name.zip # 指明上面压缩步骤生成的zip文件的路径
          asset_name: your-final-release-filename-${{ env.RELEASE_VERSION }}.zip
          asset_content_type: application/zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1262906.html

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

相关文章

【吞噬星空】弧刀盘价值180亿,购买1016名强者,保卫地球

Hello,小伙伴们,我是拾荒君。 国漫《吞噬星空》的第95集更新了,一更新,我和我的小伙伴们就迫不及待地去观看了。在这个集剧中,罗峰在一个奴隶拍卖场中深切地感受到了宇宙中弱肉强食的残酷现实。他看到,在宇宙中&#…

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用【鸿蒙专栏-05】

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用 HarmonyOS,作为一款全场景分布式操作系统,为了推动更广泛的应用开发,采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript(TS)的基础上发展而来,为HarmonyOS提供了丰富的应用开发工具,使开…

32+OLED之IIC手撕亚索七级狗牌

成品效果: 硬件配方:STM32F103C8T6 SSD1306 软件配方:字模提取V2.1 CopyLeft By Horse2000 STM32CubeMX keil5 思路: 1.找到图片,将其转化为128*64 像素大小的二值化图片;【python实现转化】&#xff…

Spring --- 创建一个Spring项目

文章目录 创建一个Maven项目添加Spring框架支持添加启动类 创建一个Maven项目 注:我们需要使用 Maven 来管理依赖,所以需要创建一个Maven项目 添加Spring框架支持 注: 添加这两个依赖才能正确使用 Spring在添加依赖后记得刷新,把依…

【开源威胁情报挖掘1】引言 + 开源威胁情报挖掘框架 + 开源威胁情报采集与识别提取

基于开源信息平台的威胁情报挖掘综述 写在最前面摘要1 引言近年来的一些新型网络安全威胁类型挖掘网络威胁的情报信息威胁情报分类:内、外部威胁情报国内外开源威胁情报挖掘分析工作主要贡献研究范围和方法 2 开源威胁情报挖掘框架1. 开源威胁情报采集与识别2. 开源…

浅谈无线测温系统在海上石油平台高压配电盘的应用-安科瑞 蒋静

摘要:海上石油平台的封闭式中高压配电盘在平台电力系统起着十分重要的作用,通过统计其配电盘的 大部分故障为前期的热效应引起,由于配电盘内部空间封闭狭小,所以无法进行人工巡查测温,这给油田的供电系统埋下了一定的潜…

服务器bash进程占用cpu过多疑似中挖矿病毒记录

发现过程 因为我有使用conky的习惯,也就是在桌面上会显示cpu和内存的占用情况,由于服务器不止我一个人使用,最近发现好几次我同学的账户下的bash进程占用特别多,问了他之后,他也说他几次都是没有使用过bash相关服务&a…

【Java】文件I/O-文件系统操作

导读 在文件I/O这一节的知识里,对文件的操作主要分为两大类: ☑️针对文件系统进行的操作 ☑️针对文件内容进行的操作 针对文件系统进行的操作主要是对Java中的File类进行操作。这篇文章里,博主就来带大家看看Java中针对文件系统的一些常…

Vue3水印(Watermark)

APIs 参数说明类型默认值必传width水印的宽度,默认值为 content 自身的宽度numberundefinedfalseheight水印的高度,默认值为 content 自身的高度numberundefinedfalserotate水印绘制时,旋转的角度,单位 number-22falsezIndex追加…

利用数据库的表,生成word文档的表结构注释说明

文章目录 1.场景说明2.解决办法3.生成文档3.1.实现思路3.2.引入Apache POI依赖3.3.获取表及表字段说明Mapper3.4.POI创建文档表格,并填充数据3.5.完整的接口下载代码3.6.效果展示 1.场景说明 在项目中表已经建立好了,但是现在想对外提供一个表的字段的描…

获得文件MD5——校验完整性 window 和 Linux下操作

目录 引出window下获得文件MD5Linux下获得文件MD5单个文件整个目录下所有文件检查MD5 总结 引出 1.Windows 10 自带了一个命令行程序 certutil可以 获取文件的 MD5 值; 2.Linux下md5sum命令获得文件MD5值; window下获得文件MD5 Windows 10 自带了一个命…

python中的简单线性拟合

简单线性回归可以拟合线性关系的数据,一般使用一次函数或二次函数即可。 import numpy as np import matplotlib.pyplot as pltxnp.array([1,2,3,4,5,6,7,8,9,10]) ynp.array([2.5,4.5,4.8,5.5,6.0,7.0,7.8,8.0,9.0,10.0])#一次拟合函数 slope,interceptnp.polyfit…

vs2019 - MFC对话框程序的工程名称不支持下划线命名法

文章目录 vs2019 - MFC对话框程序的工程名称不支持下划线命名法概述笔记备注END vs2019 - MFC对话框程序的工程名称不支持下划线命名法 概述 正在写账单分析程序, 用MFC 对话框. 因为比较习惯下划线命名法, 就在向导中给工程名称起了一个my_test这样的名称(下划线命名法, 小…

亮相史上规模最大高交会,Coremail展现邮件技术创新实力

11月19日,第二十五届中国国际高新技术成果交易会在深圳落下帷幕,作为国内邮件行业引领者,Coremail受邀参展。 展览现场,Coremail邮件解决方案及系列产品受到了众多参观者与业内人士的关注与好评。Coremail XT6邮件系统技术成熟&a…

iOS-打包上架构建版本一直不出现/正在处理/自动消失

iOS开发过程中,打包上架苹果审核是一个不可或缺的环节。说实话,这个问题我遇见两次了,为了让自己长点记性,决定写下来。首先,列举几种情况: 1.iPa包上传至App store后,一个小时内不显示构建版本…

使用Prometheus监控Synology(群辉)

1、简介 在现代的IT环境中,对于服务器和网络设备的监控是至关重要的。Synology(群辉)作为一种流行的网络存储解决方案,为用户提供了高性能和可靠的存储服务。然而,了解Synology设备的运行状况和性能指标对于确保其正常…

Nodejs+Vue校园餐厅外卖订餐点餐系统 PHP高校食堂 微信小程序_0u4hl 多商家

对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革,对于传统的校园订餐管理,所包括的信息内容比较多,对于用户想要对这些数据进行管理维护需要花费很大的时间信息,而且对于数据的存储比较麻烦,想要查找某一…

为品质加冕 | 喜尔康智家再次斩获大奖

近日,被誉为“家居质量界奥斯卡”的2023年度沸腾质量奖颁奖盛典在福建厦门第三届家居质量大会同期隆重举行。现场重磅揭晓2023年沸腾质量奖测评获奖结果。 今年,喜尔康智能家居再接再厉,从数百家参评企业中脱颖而出,参评的智能坐便…

一起学docker系列之十三使用Dockerfile构建带有Java 8、Vim和Ifconfig功能的CentOS镜像

目录 1 前言2 构建流程3 Dockerfile说明4 解释Dockerfile5 构建Docker镜像6 运行Docker容器7 总结8 参考地址 1 前言 Docker是一个强大的工具,可以创建一致、可移植和隔离的环境。在本指南中,我们将介绍如何创建一个基于CentOS的Docker镜像,…

基于FPGA的五子棋游戏设计

基于FPGA的五子棋游戏设计 本文基于FPGA设计五子棋游戏,使用按键输入,使用VGA接口输出。五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为1010,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮…