راهنمای استقرار و بهروزرسانی اتوماتیک GitHub Actions برای برنامههای Tauri متن باز
1. معرفی
این مقاله بهتفصیل نحوه استفاده از GitHub Actions برای پیادهسازی ساخت اتوماتیک، انتشار، و قابلیت بهروزرسانی اتوماتیک برنامه برای برنامههای Tauri از طریق UpgradeLink را توضیح میدهد. از طریق این راهنمای شما یاد میگیرید که چگونه Workflowهای GitHub Actions را پیکربندی کنید تا فرآیند کاملاً اتوماتیک از ارسال کد تا بهروزرسانی برنامه را تکمیل کنید.
2. معرفی ابزارهای اصلی
1. Tauri GitHub Action رسمی
پلاگین GitHub Action رسمی ارائه شده توسط Tauri به توسعهدهندگان کمک میکند تا برنامههای Tauri را بهطور خودکار در محیط GitHub Actions بسازند، بستهبندی کنند، و به GitHub Releases منتشر کنند.
2. UpgradeLink Action
پلاگین Action ارائه شده توسط UpgradeLink برای بارگذاری فایل بهروزرسانی (latest.json) تولید شده توسط برنامه Tauri به سرور UpgradeLink استفاده میشود. UpgradeLink آدرس فایل برنامه را در فایل json میخواند، فایل را ذخیره میکند، فایلهای نسخه برنامه را بهطور خودکار ایجاد میکند، و استراتژیهای بهروزرسانی مربوطه را ایجاد میکند.
3. پروژه نمونه با Workflow کامل
پروژه نمونه با Workflow کامل
3. توضیح Workflow
Workflow از دو job اصلی تشکیل میشود:
publish-tauri: ساخت و انتشار برنامه Tauri به GitHub Releases
- ساخت چند پلتفرمی: همزمان از macOS، Linux، و Windows پشتیبانی میکند
- استخراج شماره نسخه: استخراج شماره نسخه برنامه از خروجی ساخت Tauri
- مدیریت انتشار: بهطور خودکار GitHub Release ایجاد کرده و بستههای نصب برنامه را بارگذاری میکند
upgradeLink-upload: همگامسازی اطلاعات بهروزرسانی با UpgradeLink
- وابستگیها: منتظر تکمیل job publish-tauri میماند
- آگاهی نسخه: شماره نسخه برنامه را از طریق پارامترهای خروجی دریافت میکند
- فراخوانی API: از UpgradeLink Action برای بارگذاری latest.json به سرور بهروزرسانی استفاده میکند
4. مراحل ادغام دقیق
1. آمادهسازی
ابتدا، موارد زیر را اطمینان حاصل کنید:
- مخزن GitHub ایجاد شده و کد برنامه Tauri بارگذاری شده است
- حساب پلتفرم UpgradeLink دارید و مراکز زیر را بهدست آوردهاید:
- ACCESS_KEY (کلید دسترسی) اطلاعات کلید
- ACCESS_SECRET (secret دسترسی) اطلاعات کلید
- TAURI_KEY (شناسه منحصر به فرد برنامه) اطلاعات برنامه
- در پیکربندی برنامه tauri در پلتفرم UpgradeLink، آدرس مخزن GitHub را پیکربندی کردهاید.
2. پیکربندی GitHub Secrets
مولفههای محیطی رمزگذاری شده زیر را در Settings > Security > Secrets and variables > Actions مخزن GitHub اضافه کنید:
| نام Secret | توضیح |
|---|---|
| UPGRADE_LINK_ACCESS_KEY | کلید دسترسی ارائه شده توسط پلتفرم UpgradeLink برای احراز هویت فراخوانی API |
| UPGRADE_LINK_ACCESS_SECRET | secret دسترسی ارائه شده توسط پلتفرم UpgradeLink برای احراز هویت فراخوانی API |
| UPGRADE_LINK_TAURI_KEY | شناسه منحصر به فرد اختصاص داده شده توسط پلتفرم UpgradeLink برای برنامه Tauri شما |
| TAURI_SIGNING_PRIVATE_KEY | کلید خصوصی امضای برنامه Tauri (اگر نیاز به امضای کد باشد) |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD | رمز عبور کلید خصوصی امضای (اگر تنظیم شده باشد) |
3. توصیه میشود ابتدا با استفاده از tauri-action رسمی ارائه شده توسط Tauri تست کنید تا اطمینان حاصل شود که ساخت و انتشار نسخههای Releases به درستی انجام میشود.
از آنجایی که استفاده از Workflow tauri-action ممکن است با مشکلات مختلف مجوز مواجه شود، نیاز به اجرای پیشبینی فرآیند دارید.
4. اطلاعات پیکربندی پیشفرض ارائه شده توسط رسمی را تغییر دهید
تغییرات زیر را بر اساس مثال رسمی انجام دهید:
name: 'publish'
on:
push:
branches:
- main
jobs:
publish-tauri:
permissions:
contents: write
outputs:
appVersion: ${{ steps.set-job-output.outputs.appVersion }}
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest' # for Arm based macs (M1 and above).
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest' # for Intel based macs.
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-22.04'
args: ''
- platform: 'ubuntu-22.04-arm' # Only available in public repos.
args: ''
- platform: 'windows-latest'
args: ''
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: install dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu-') # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf xdg-utils
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn' # Set this to npm, yarn or pnpm.
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable # Set this to dtolnay/rust-toolchain@nightly
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: install frontend dependencies
# If you don't have `beforeBuildCommand` configured you may want to build your frontend here too.
run: yarn install # change this to npm or pnpm depending on which one you use.
- uses: tauri-apps/tauri-action@v0
id: tauri-action # Add id for later reference
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
with:
tagName: tauri-demo-v__VERSION__
releaseName: 'tauri-demo v__VERSION__'
releaseBody: 'See the assets to download this version and install.'
releaseDraft: false # Do not create draft version
prerelease: false # Not as pre-release version
args: ${{ matrix.args }}
- name: Set job output
id: set-job-output
if: matrix.platform == 'ubuntu-22.04'
run: |
echo "appVersion=${{ steps.tauri-action.outputs.appVersion }}" >> $GITHUB_OUTPUT
upgradeLink-upload:
needs: publish-tauri # Depends on publish-tauri job completion
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Send a request to UpgradeLink
uses: toolsetlink/upgradelink-action@3.0.2
with:
access_key: ${{ secrets.UPGRADE_LINK_ACCESS_KEY }}
access_secret: ${{ secrets.UPGRADE_LINK_ACCESS_SECRET }}
config: |
{
"app_type": "tauri",
"request": {
"app_key": "${{ secrets.UPGRADE_LINK_TAURI_KEY }}",
"latest_json_url": "https://github.com/toolsetlink/tauri-demo/releases/download/tauri-demo-v${{ needs.publish-tauri.outputs.appVersion }}/latest.json"
}
}5. مشکلات رایج و راهحلها
1. مشکلات مجوز GitHub Actions
اگر با خطاهای ناکافی مجوز مواجه شدید، اطمینان حاصل کنید:
permissions: contents: writeدر فایل Workflow پیکربندی شده است- مجوزهای Actions در تنظیمات مخزن بهدرستی پیکربندی شده اند
2.troubleshooting بروزرسانی ساخت
- برای اطلاعات خطای خاص، به لاگهای GitHub Actions مراجعه کنید
- اطمینان حاصل کنید که همه وابستگیها بهدرستی نصب شده، بهویژه وابستگیهای سیستم برای پلتفرم Linux
- سازگاری نسخههای Rust و Node.js را تایید کنید
3. مشکلات ادغام UpgradeLink
- بررسی کنید که آیا شناسه برنامه در کنسول UpgradeLink با پیکربندی مطابقت دارد
- تأیید کنید که آیا فایل latest.json صحیح در GitHub Releases تولید شده است
6. خلاصه
با پیکربندی بالا، میتوانید فرآیند کاملاً اتوماتیک ساخت، انتشار، و بهروزرسانی برای برنامههای Tauri را پیادهسازی کنید. هرگاه که کد به برانچ مشخص شده رانده شود، GitHub Actions بهطور خودکار کارهای زیر را تکمیل خواهد کرد:
- تشخیص تغییرات کد
- ساخت برنامه Tauri در محیطهای چند پلتفرمی
- ایجاد GitHub Release و بارگذاری بستههای نصب
- استخراج شماره نسخه برنامه
- همگامسازی اطلاعات بهروزرسانی با پلتفرم UpgradeLink
- کاربران نهایی از طریق UpgradeLink اعلانهای بهروزرسانی برنامه را دریافت خواهند کرد
این فرآیند اتوماتیک به شدت کارایی توسعه را بهبود میبخشد، خطاهای عملیات دستی را کاهش میدهد، و به توسعهدهندگان اجازه میدهد تا بیشتر بر توسعه功املیات برنامه تمرکز کنند.