https://github.com/lencx/tauri-release
🔗 tauri release toolchain
https://github.com/lencx/tauri-release
action cli github-action tauri-apps tauri-release
Last synced: about 1 year ago
JSON representation
🔗 tauri release toolchain
- Host: GitHub
- URL: https://github.com/lencx/tauri-release
- Owner: lencx
- License: mit
- Created: 2022-11-28T02:16:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-28T03:15:04.000Z (about 2 years ago)
- Last Synced: 2025-04-12T06:17:04.701Z (about 1 year ago)
- Topics: action, cli, github-action, tauri-apps, tauri-release
- Language: TypeScript
- Homepage:
- Size: 4.71 MB
- Stars: 20
- Watchers: 2
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tauri-release
> 🔗 tauri release toolchain
## [@tauri-release/cli](./packages/cli/README.md)
[](https://www.npmjs.com/package/@tauri-release/cli)
[](https://npmjs.org/package/@tauri-release/cli)
[](https://nodejs.org/en/)
*Note: `@tauri-release/cli` needs to be used with [Tauri GitHub Action](https://github.com/tauri-apps/tauri-action).*
### Why you need `Tauri GitHub Action`?
The `@tauri-release/cli updater` subcommand need to read the zip information from the [github releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases), and use it as a data source for the [updater json](https://tauri.app/v1/guides/distribution/updater/#update-file-json-format) to automate the application updates.
### Features
- [new](#new)
- [release](#release)
- [updater](#updater)
- [override](#override)
*Note: `@tauri-release/cli` needs to be used with [Tauri GitHub Action](https://github.com/tauri-apps/tauri-action).*
### Install
```bash
# Npm
npm i -D @tauri-release/cli
# Yarn
yarn add -D @tauri-release/cli
# Pnpm
pnpm i -D @tauri-release/cli
```
### Usage
```bash
# long command
tauir-release
# short command
tr
# help
tr -h
```
### subCommand
#### release
#### [[semver]](https://semver.org/)
Automatic version upgrade, the default value is `--patch`:
- `major`
- `minor`
- `patch`
```bash
# 0.x.x -> 1.x.x
tr release --major
# x.0.x -> x.1.x
tr release --minor
# x.x.0 -> x.x.1
tr release
```
##### --git
Enable the git command to automatically submit after the version is updated, create a tag and push it to the remote repository (`git add -> git commit -> git tag -> git push`)
```bash
# default is not enabled
tr release -major
# enable
tr release --major --git
```
##### --logfile
Customize the `update-log` file path, the default name is `UPDATE_LOG.md`.
```bash
tr release --git
# custom file
tr release --git --logfile="src/update_log.md"
```
#### new
##### log
Generate tauri update-log file, the default name is `UPDATE_LOG.md`.
```bash
tr new log
# custom file
tr new --logfile="src/update_log.md"
```
##### action
Generate github action file, the default name is `.github/workflows/release.yml`.
```bash
tr new action
# custom file
tr new action --actionfile=".github/workflows/tauri-release.yml"
```
#### updater
Generate tauri update file, the default name is `updater/install.json`. [[Tauri doc] Update File JSON Format](https://tauri.app/v1/guides/distribution/updater/#update-file-json-format).
```bash
tr updater --owner=GITHUB_OWNER --repo=GITHUB_REPO --token=GITHUB_TOKEN
# custom file
# The notes field value in the json file needs to be obtained from the update_log file
tr updater --owner=GITHUB_OWNER --repo=GITHUB_REPO --token=GITHUB_TOKEN --logfile="src/update_log.md"
```
#### override
Override [productName or version](https://tauri.app/v1/api/config/#packageconfig) (`tauri.conf.json > package`):
##### --name
```bash
# package.productName
tr override --name=TauriApp
```
##### --version
```bash
# package.version
tr override --version="../package.json"
```
#### --json.a_b_c
Any field in any json file can be overwritten, the field cannot contain `_`.
- key: `a_b_c -> a.b.c`
- value: `number | null | boolean | string`
```bash
# package_productName -> package.productName
# tauri_allowlist_all -> tauri.allowlist.all
tr override --json.package_productName="WA" --json.tauri_allowlist_all=true
```
##### --jsonfile
Customize the `tauri.conf.json` path, the default is `src-tauri/tauri.conf.json` ([tauri.conf.json](https://tauri.app/v1/api/config/)).
```bash
tr override --name="hello-tauri" --version="../package.json" --jsonfile="src/path/tauri.conf.json"
# any field in any json file
# a_b_c -> a.b.c
# b_c -> b.c
tr override --json.a_b_c=true --json.b_c=20 --jsonfile="test.json"
```
### Examples
[lencx/WA/package.json](https://github.com/lencx/WA/blob/main/package.json)
```json
{
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"tauri": "tauri",
"tr": "tr",
"updater": "tr updater",
"release": "tr release --git",
"fix:linux": "tr override --name=WA"
},
}
```
[lencx/WA/.github/workflows/release.yml](https://github.com/lencx/WA/blob/main/.github/workflows/release.yml)
```yml
# ...
- name: fix linux build
if: matrix.platform == 'ubuntu-latest'
run: |
yarn fix:linux
# ...
updater:
runs-on: ubuntu-latest
needs: [create-release, build-tauri]
steps:
- uses: actions/checkout@v2
- run: yarn
- run: yarn updater --token=${{ secrets.GITHUB_TOKEN }}
- name: Deploy install.json
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./updater
force_orphan: true
```