feat(ci): build Linux AppImage and update updater metadata
The CI workflow now builds a single bundle per run, adds Linux AppImage output, and updates the Tauri version using a Node script. The publishing tool is extended to recognize Linux artifacts, select a primary artifact based on the target platform, and merge platform entries into an existing latest.json when present. - Limit matrix parallelism and pass bundle targets to Tauri - Update updater platform handling and latest.json merging - Add Linux Tauri config for AppImage bundling
This commit is contained in:
@@ -32,16 +32,19 @@ jobs:
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
max-parallel: 1
|
||||
matrix:
|
||||
include:
|
||||
# - platform: 'macos-latest'
|
||||
# args: '--target aarch64-apple-darwin'
|
||||
# - platform: 'macos-latest'
|
||||
# args: '--target x86_64-apple-darwin'
|
||||
# - platform: 'ubuntu-22.04'
|
||||
# args: ''
|
||||
- platform: "windows-latest"
|
||||
args: ""
|
||||
bundles: "nsis"
|
||||
updater_platform: "windows-x86_64"
|
||||
- platform: "ubuntu-22.04"
|
||||
bundles: "appimage"
|
||||
updater_platform: "linux-x86_64"
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
|
||||
@@ -55,7 +58,7 @@ jobs:
|
||||
if: matrix.platform == 'ubuntu-22.04'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
|
||||
sudo apt-get install -y build-essential curl wget file libssl-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libxdo-dev libfuse2
|
||||
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v4
|
||||
@@ -69,18 +72,13 @@ jobs:
|
||||
run: npm version ${{ github.ref_name }} --no-git-tag-version --allow-same-version
|
||||
|
||||
- name: Update tauri.conf.json Version
|
||||
shell: powershell
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.ref_name }}
|
||||
run: |
|
||||
$path = ".\src-tauri\tauri.conf.json"
|
||||
$version = '${{ github.ref_name }}'
|
||||
$content = Get-Content -Raw -Encoding UTF8 $path
|
||||
$regex = [regex]'"version"\s*:\s*"[^"]*"'
|
||||
$replacement = '"version": "' + $version + '"'
|
||||
$updated = $regex.Replace($content, $replacement, 1)
|
||||
$encoding = New-Object System.Text.UTF8Encoding($false)
|
||||
[System.IO.File]::WriteAllText($path, $updated, $encoding)
|
||||
node -e "const fs=require('fs'); const path='src-tauri/tauri.conf.json'; const config=JSON.parse(fs.readFileSync(path,'utf8')); config.version=process.env.RELEASE_VERSION; fs.writeFileSync(path, JSON.stringify(config,null,2)+'\n');"
|
||||
|
||||
- name: Commit and Push Changes
|
||||
if: matrix.platform == 'windows-latest'
|
||||
shell: powershell
|
||||
run: |
|
||||
git config user.name '${{ vars.USERNAME_GIT }}'
|
||||
@@ -131,12 +129,14 @@ jobs:
|
||||
env:
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD}}
|
||||
run: npm run tauri build
|
||||
run: npm run tauri -- build --bundles ${{ matrix.bundles }}
|
||||
# ----------------------
|
||||
# Upload to MinIO (via mc) and create latest.json
|
||||
# ----------------------
|
||||
- name: Upload artifacts to MinIO with cicd_tool
|
||||
working-directory: GitLite/cicd_tool
|
||||
env:
|
||||
PUBLISH_PLATFORM: ${{ matrix.updater_platform }}
|
||||
run: |
|
||||
uv sync
|
||||
uv run main.py
|
||||
|
||||
Reference in New Issue
Block a user