LogoLogo
github
  • 💪Upupup
  • React
    • hook
    • redux
    • Router
    • umimax+nest.js 实现 权限管理系统
    • umimax + Nest.js 实现权限管理系统
  • Vue
    • effectScope 是干啥的
    • Object.assign()
    • 响应式理解
    • @babel/preset-env 问题
    • 自定义指令
    • 问题及解决
    • 🧐权限管理(动态路由)
  • docker
    • Docker 常用命令
    • Docker部署遇到的问题
    • Docker Compose 常用命令
    • docker修改daemon.json
    • jenkins
    • Jenkinsfile 语法进阶
    • nginx配置
    • 问题
    • 玩转Nginx:轻松为Docker部署的服务添加域名的完美指南
    • Docker部署前后端项目:经验分享与问题解决
  • git
    • command
    • problem
    • rebase实践
  • 前端开发面试题集
    • CSS 面试题
    • 前端工程化面试题
    • HTML 面试题
    • JavaScript 面试题
    • NestJS 面试题
    • Node.js 面试题
    • 性能优化面试题
    • React 面试题
    • 安全面试题
    • Vue 面试题
  • interviewer
    • 计算机网络
    • 性能优化
  • leetcode
    • 算法
      • 分治算法
      • 滑动窗口与双指针
        • 🦸定长滑动窗口
        • 🚴不定长滑动窗口
        • 🚴‍♂️单序列双指针
      • 回溯
      • 二分法
  • nestjs
    • mail
    • mini-order
    • nestjs
    • prisma
    • 登录注册
  • nextjs
    • 用 V0 和 Cursor 实现全栈开发:从小白到高手的蜕变
  • tauri
    • 思路
    • 自动通知应用升级
  • vite
    • vite实现原理
  • webpack
    • 资料
  • 工具
    • Eslint
    • jenkins
    • 关于cicd
  • 微信小程序
    • ScoreDeck
    • h5跳转小程序问题
  • 思路
    • carTool
  • 操作系统学习
    • Linux命令
    • 计算机是如何计数的
    • nginx
      • location
      • try_files
  • 浏览器
    • session、location
    • web crypto
    • 性能监控和错误收集与上报
    • 预请求
  • 知识点整理
    • 知识点整理
  • 面试
    • Promise
    • 备战
    • 数码3
    • 腾娱
    • 腾讯云智
    • 重复请求合并
  • 前端工程化
    • 在 pnpm Monorepo 中使用公共方法包
由 GitBook 提供支持
在本页
  • 官方文档了解情况
  • 步骤1
  • 步骤2
  • 步骤3
  • 步骤4
  • github页面构建
  • 最后
  • 源码地址
  • References

这有帮助吗?

在GitHub上编辑
  1. tauri

自动通知应用升级

上一页思路下一页vite

最后更新于5个月前

这有帮助吗?

疑问:是如何来通知用户应用升级

官方文档了解情况

tauri 分发打包

步骤1

首先生成私钥和秘钥

image-20240122164243357

我是windows系统

步骤2

在tauri.config.json中新增updater配置

重要的两个字段

endpoints:从地址中获取更新的内容,判断是否需要更新

pubkey:步骤一生成的公钥,带pub后缀的那个

tips:

endpoints中通常用静态的json文件来配置,例如

url:更新包的url地址

signature:.sig文件的内容,每次构建时可能都会改变

步骤3

在github中设置环境变量

TAURI_PRIVATE_KEY:步骤一生成的私钥

TAURI_KEY_PASSWORD:步骤一输入了两次的密码

tips:

在本地打包时,需要配置环境变量

步骤4

name: 'publish'

on: pull_request

jobs:
  create-release:
    permissions:
      contents: write
    runs-on: ubuntu-20.04
    outputs:
      release_id: ${{ steps.create-release.outputs.result }}

    steps:
      - uses: actions/checkout@v4
      - name: setup node
        uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: get version
        run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
      - name: create release
        id: create-release
        uses: actions/github-script@v6
        with:
          script: |
            const { data } = await github.rest.repos.createRelease({
              owner: context.repo.owner,
              repo: context.repo.repo,
              tag_name: `v${process.env.PACKAGE_VERSION}`,
              name: `Desktop App v${process.env.PACKAGE_VERSION}`,
              body: 'Take a look at the assets to download and install this app.',
              draft: true,
              prerelease: false
            })
            return data.id

  build-tauri:
    needs: create-release
    permissions:
      contents: write
    strategy:
      fail-fast: false
      matrix:
        platform: [macos-latest, ubuntu-20.04, windows-latest]

    runs-on: ${{ matrix.platform }}
    steps:
      - uses: actions/checkout@v4
      - name: setup node
        uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: install Rust stable
        uses: dtolnay/rust-toolchain@stable
      - name: install dependencies (ubuntu only)
        if: matrix.platform == 'ubuntu-20.04'
        run: |
          sudo apt-get update
          sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
      - name: install frontend dependencies
        run: pnpm install # change this to npm or pnpm depending on which one you use
      - uses: tauri-apps/tauri-action@v0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          releaseId: ${{ needs.create-release.outputs.release_id }}

  publish-release:
    permissions:
      contents: write
    runs-on: ubuntu-20.04
    needs: [create-release, build-tauri]

    steps:
      - name: publish release
        id: publish-release
        uses: actions/github-script@v6
        env:
          release_id: ${{ needs.create-release.outputs.release_id }}
        with:
          script: |
            github.rest.repos.updateRelease({
              owner: context.repo.owner,
              repo: context.repo.repo,
              release_id: process.env.release_id,
              draft: false,
              prerelease: false
            })

拿到这个模板,github构建就成功了一半,然后呢,我们需要在构建完之后,来生成一个install.json文件来提示更新,这个install.json的地址就是上方的endpoints的地址,具体怎么做的,可以去下方仓库查看

github页面构建

流水线会在这个分支生成一个install.json文件,从而可以通过这个文件来判断是否更新,如果可以通过例如https://liboq.github.io/tauri-example/install.json来访问到,则表示github页面构建成功(需要把我的仓库和用户名替换哦)

最后

经过多次测试,最后终于成功了!自动提示更新成功

源码地址

References

https://mp.weixin.qq.com/s?__biz=MzIzNjE2NTI3NQ==&mid=2247485470&idx=1&sn=1bc6105add6614312db2b37784b8a3c4&chksm=e8dd49eadfaac0fc38610916c3430f43764eb6fd5e04771365ee277d329a647800561616a90d&scene=178&cur_album_id=2593843659863752704&poc_token=HD4jrmWjMnJHedUvWGODAD_UBWZ8d_Wah68hOd-M

https://github.com/tauri-apps/tauri-action/tree/v0.3/

image-20240122164748610
image-20240122165440214
image-20240122165028410
image-20240122165220738

从学习到了一个github打包的例子,如下

image-20240122171404560
image-20240122165945029

欢迎star!

tauri-action文档
tauri-example
官网