tauri在github上进行自动更新打包并发版过程,实战操作避坑

这篇具有很好参考价值的文章主要介绍了tauri在github上进行自动更新打包并发版过程,实战操作避坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从网上找了很多很多的文章,结果还是入坑了,一个问题找了一天才解决:

Error A public key has been found, but no private key. Make sure to set `TAURI_PRIVATE_KEY` environment variable.

596 ELIFECYCLE  Command failed with exit code 1.

597Error: Process completed with exit code 1.

想要让tauri应用自动升级,就要配置公私钥设置,官方文档:Updater | Tauri Apps

本地生成公私钥

mac和linux生成公私钥

pnpm tauri signer generate -w ~/.tauri/myapp.key

windows生成公私钥

pnpm tauri signer generate -w $HOME/.tauri/myapp.key

 

给tauri配置公私钥

在tauri.conf.json文件中开启自动升级,并将公钥添加到里面,设置你的升级信息json文件获取的url路径tauri在github上进行自动更新打包并发版过程,实战操作避坑,HTML前端,客户端开发,github

 json文件内容格式:

{
  "version": "v1.0.0",
  "notes": "Test version",
  "pub_date": "2020-06-22T19:25:57Z",
  "platforms": {
    "darwin-x86_64": {
      "signature": "Content of app.tar.gz.sig",
      "url": "https://github.com/username/reponame/releases/download/v1.0.0/app-x86_64.app.tar.gz"
    },
    "darwin-aarch64": {
      "signature": "Content of app.tar.gz.sig",
      "url": "https://github.com/username/reponame/releases/download/v1.0.0/app-aarch64.app.tar.gz"
    },
    "linux-x86_64": {
      "signature": "Content of app.AppImage.tar.gz.sig",
      "url": "https://github.com/username/reponame/releases/download/v1.0.0/app-amd64.AppImage.tar.gz"
    },
    "windows-x86_64": {
      "signature": "Content of app.msi.sig",
      "url": "https://github.com/username/reponame/releases/download/v1.0.0/app-x64.msi.zip"
    }
  }
}

设置环境变量

将TAURI_PRIVATE_KEY和TAURI_KEY_PASSWORD设置为环境变量

mac和linux:

export TAURI_PRIVATE_KEY="content of the generated key"
export TAURI_KEY_PASSWORD="password"

windows:

set TAURI_PRIVATE_KEY="content of the generated key"
set TAURI_KEY_PASSWORD="password"

powershell:

$env:TAURI_PRIVATE_KEY="content of the generated key"
$env:TAURI_KEY_PASSWORD="password"

编写github action yml文件

我这里用的pnpm作为包管理工具的,你也可以使用yarn或者npm,但是我推荐使用pnpm

name: Release CI

on:
    push:
        # Sequence of patterns matched against refs/tags
        tags:
            - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
    workflow_dispatch:

jobs:
    release:
        permissions:
            contents: write
        strategy:
            fail-fast: false
            matrix:
                # 选择编译平台
                platform: [macos-latest, ubuntu-20.04, windows-latest]
        runs-on: ${{ matrix.platform }}
        steps:
            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install dependencies (ubuntu only)
              if: matrix.platform == 'ubuntu-20.04'
              # You can remove libayatana-appindicator3-dev if you don't use the system tray feature.
              run: |
                  sudo apt-get update
                  sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev

            - name: Rust setup
              uses: dtolnay/rust-toolchain@stable

            - name: Rust cache
              uses: swatinem/rust-cache@v2
              with:
                  workspaces: './src-tauri -> target'

            - name: Sync node version and insatll nodejs
              uses: actions/setup-node@v3
              with:
                  node-version: 16

            # 使用 pnpm 作为包管理器
            - name: Install pnpm
              uses: pnpm/action-setup@v2
              id: pnpm-install
              with:
                  version: 8
                  run_install: false

            - name: Get pnpm store directory
              id: pnpm-cache
              shell: bash
              run: |
                  echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

            - uses: actions/cache@v3
              name: Setup pnpm cache
              with:
                  path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
                  key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
                  restore-keys: |
                      ${{ runner.os }}-pnpm-store-

            - name: Install app dependencies and build it
              run: pnpm i && pnpm bundle
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
                  TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
            
            - name: Tauri Action
              uses: tauri-apps/tauri-action@v0.3
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                  TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
                  TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
              with:
                  tagName: ${{ github.ref_name }} # This only works if your workflow triggers on new tags.
                  releaseName: 'App Name v__VERSION__' # 自定义 release 名称,__VERSION__ 将自动填写为版本信息
                  releaseBody: 'See the assets to download and install this version.'
                  releaseDraft: true
                  prerelease: false

在github上配置私钥

因为你的打包工作最后要放到github上,所以要在工作流中配置TAURI_PRIVATE_KEY和TAURI_KEY_PASSWORD设置为环境变量才可以,不然无法进行打包,会报错说找不到TAURI_PRIVATE_KEY

tauri在github上进行自动更新打包并发版过程,实战操作避坑,HTML前端,客户端开发,github

 按照提示,将环境变量添加好就可以了

打tag发版 

然后打一个tag进行发版操作

git tag v0.0.1


git push --tag

 到github action里面就可以看到工作流就已经开始运行了tauri在github上进行自动更新打包并发版过程,实战操作避坑,HTML前端,客户端开发,github

当然我这里是已经运行成功了的,等你的工作流运行成功后,就可以到release页面找到打的包了

tauri在github上进行自动更新打包并发版过程,实战操作避坑,HTML前端,客户端开发,github 最后将打包后的文件下载链接和签名配置到那个更新文件里面就可以实现自动更新了:

tauri在github上进行自动更新打包并发版过程,实战操作避坑,HTML前端,客户端开发,github

 有问题可以看我开发的filehub文件存储仓库代码:GitHub - Sjj1024/s-hub: 一个使用github作为资源存储的软件文章来源地址https://www.toymoban.com/news/detail-611891.html

到了这里,关于tauri在github上进行自动更新打包并发版过程,实战操作避坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动拉取 GitHub 仓库更新的脚本

    更好的阅读体验 huge{color{red}{更好的阅读体验}} 更好的阅读体验 由于将 HAUE-CS-WIKI 部署到了我自己的服务器上作为国内镜像站,每次在源站更新后都需要手动拉取镜像站的更新实在是太麻烦了,因此产生了编写该脚本的需求( 读者可根据该脚本思路编写属于你自己的定时任

    2024年02月12日
    浏览(33)
  • openwrt下自动更新github hosts

    本文在原作者的基础上进行修改https://blog.csdn.net/lovelyed/article/details/127882930 使用到gitee-hosts的仓库https://gitee.com/fliu2476/github-hosts/blob/main/hosts 该仓库每天更新hosts for GitHub 1.shh连接openwrt 将以下内容粘贴到 hostsUpdate.sh中 命令分别对应获取、整合编辑、复制到hosts文件、修改权限、

    2024年02月01日
    浏览(25)
  • github使用workflow工作流git push后自动打包部署github pages

    根目录新建.github/workflows/docs.yml .github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

    2024年02月10日
    浏览(42)
  • tauri+vite+vue3开发环境下创建、启动运行和打包发布

    目录  1.创建项目  2.安装依赖   3.启动项目  4.打包生成windows安装包   5.安装打包生成的安装包  运行下面命令创建一个tauri项目 我创建该项目时的node版本为16.15.0  兼容性注意 Vite 需要 Node.js 版本 14.18+,16+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你

    2024年01月19日
    浏览(37)
  • Unity打包与编译,后处理以及自动化等等(持续更新)

    官网地址:https://docs.unity3d.com/cn/2022.1/ScriptReference/index.html C:UserssongzhewenAppDataLocalUnityEditor C:UserssongzhewenAppDataLocalLowlongtuNRJ 然后打包,拉跨,各种失败 我也是碰到了这个错误,用的Unity 2020.3.22。Gradle文件选择的是Unity下载的,应该是6.11的版本。Android SDK下载了31.0.0。但

    2023年04月22日
    浏览(36)
  • 如何在Ubuntu上进行GitHub ssh连接

    要在 Ubuntu 上使用 SSH 连接到 GitHub,您需要进行以下步骤: 生成 SSH 密钥对 :首先在您的本地机器上生成一个 SSH 密钥对。打开终端并运行以下命令: 上述命令将为您生成一个新的 ed25519 SSH 密钥对。当提示您输入要保存密钥的位置时,按 Enter 接受默认位置。然后,您将被提

    2024年02月10日
    浏览(34)
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键。Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务。与此同时,随着技术不断发展,集成更多的功能和服务变得尤为重要。考虑到这一点,本文将介绍如何 利用 GitHub Action 来

    2024年02月08日
    浏览(27)
  • python程序打包成exe实现新版本的自动更新检测及下载

    python使用pyinstaller打包成的exe程序,代码修改重新打包就需要重新发送一次程序,略微麻烦,通过服务器存储新版本打包后的程序,检测和下载通过代码实现。 本文通过FTP局域网服务器的形式完成,使用serv-u软件配置FTP服务器,配置方式可移步下方站内链接 Serv-U配置FTP服务器

    2024年02月14日
    浏览(33)
  • electron使用electron-builder进行MacOS的 打包、签名、公证、上架、自动更新

    由于electron在macOS下的坑太多,本文不可能把所有的问题都列出来,也不可能把所有的解决方案贴出来;本文也不太会讲解每一个配置点为什么要这么设置的原因,因为有些点我也说不清,我尽可能会说明的。所以,你要抛弃你之前所有已经完成的东西,最好弄一个全新的系统

    2024年02月03日
    浏览(31)
  • Android之Gradle自动化打包实战

    解放双手,双击桌面快捷方式生成apk包,基于Gradle、bat文件让开发人员告别打包烦扰! 前不久有一个Unity3D研发的小仙女在羽毛球场问我关于Android Studio打apk的一些事情,她说他们运营和测试隔三差五的就坐着她旁边要她重复性的打包(估计是那群痴汉打着工作的幌子实际上干

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包