-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #52 from lanyeeee/feature/multi-platform-packge
feat: 配置github action实现多平台自动打包发布
- Loading branch information
Showing
1 changed file
with
223 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
name: "publish" | ||
|
||
on: | ||
push: | ||
tags: | ||
- "v*" | ||
|
||
env: | ||
REPO_NAME: bilibili-manga-watermark-remover | ||
|
||
jobs: | ||
get-version: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
VERSION: ${{ steps.get_version.outputs.VERSION }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Get version number | ||
id: get_version | ||
run: | | ||
VERSION=$(jq -r '.version' src-tauri/tauri.conf.json) | ||
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | ||
windows-build: | ||
needs: get-version | ||
env: | ||
VERSION: ${{ needs.get-version.outputs.VERSION }} | ||
outputs: | ||
VERSION: ${{ env.VERSION }} | ||
runs-on: windows-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- name: Install Rust stable | ||
uses: dtolnay/rust-toolchain@stable | ||
|
||
- name: Install pnpm | ||
uses: pnpm/action-setup@v4 | ||
with: | ||
run_install: false | ||
|
||
- name: Install frontend dependencies | ||
run: pnpm install | ||
|
||
- name: Build tauri app | ||
uses: tauri-apps/tauri-action@v0 | ||
|
||
- name: Create artifacts directory | ||
run: mkdir -p artifacts | ||
|
||
- name: Copy nsis to release assets | ||
run: cp src-tauri/target/release/bundle/nsis/${{ env.REPO_NAME }}_${{ env.VERSION }}_x64-setup.exe artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_windows_x64.exe | ||
|
||
- name: Zip portable to release assets | ||
run: | | ||
cd src-tauri/target/release | ||
7z a -tzip ../../../artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_windows_x64_portable.zip ${{ env.REPO_NAME }}.exe | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: windows-assets | ||
path: artifacts/* | ||
|
||
linux-build: | ||
needs: get-version | ||
env: | ||
VERSION: ${{ needs.get-version.outputs.VERSION }} | ||
outputs: | ||
VERSION: ${{ env.VERSION }} | ||
runs-on: ubuntu-24.04 | ||
steps: | ||
- name: install dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- name: Install Rust stable | ||
uses: dtolnay/rust-toolchain@stable | ||
|
||
- name: Install pnpm | ||
uses: pnpm/action-setup@v4 | ||
with: | ||
run_install: false | ||
|
||
- name: Install frontend dependencies | ||
run: pnpm install | ||
|
||
- name: Build tauri app | ||
uses: tauri-apps/tauri-action@v0 | ||
|
||
- name: Create artifacts directory | ||
run: mkdir -p artifacts | ||
|
||
- name: Copy deb to release assets | ||
run: cp src-tauri/target/release/bundle/deb/${{ env.REPO_NAME }}_${{ env.VERSION }}_amd64.deb artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_linux_amd64.deb | ||
|
||
- name: Copy rpm to release assets | ||
run: cp src-tauri/target/release/bundle/rpm/${{ env.REPO_NAME }}-${{ env.VERSION }}-1.x86_64.rpm artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_linux_amd64.rpm | ||
|
||
- name: Zip portable to release assets | ||
run: | | ||
cd src-tauri/target/release | ||
tar -czf ../../../artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_linux_amd64_portable.tar.gz ${{ env.REPO_NAME }} | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: linux-assets | ||
path: artifacts/* | ||
|
||
macos-build: | ||
needs: get-version | ||
env: | ||
VERSION: ${{ needs.get-version.outputs.VERSION }} | ||
outputs: | ||
VERSION: ${{ env.VERSION }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
arch: [ aarch64, x86_64 ] | ||
runs-on: macos-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: lts/* | ||
|
||
- name: Install Rust stable | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
targets: ${{ matrix.arch }}-apple-darwin | ||
|
||
- name: Install pnpm | ||
uses: pnpm/action-setup@v4 | ||
with: | ||
run_install: false | ||
|
||
- name: Install frontend dependencies | ||
run: pnpm install | ||
|
||
- name: Build tauri app | ||
uses: tauri-apps/tauri-action@v0 | ||
with: | ||
args: --target ${{ matrix.arch }}-apple-darwin | ||
|
||
- name: Create artifacts directory | ||
run: mkdir -p artifacts | ||
|
||
- name: Copy dmg to release assets | ||
env: | ||
ARCH_ALIAS: ${{ matrix.arch == 'x86_64' && 'x64' || matrix.arch }} | ||
run: cp src-tauri/target/${{ matrix.arch }}-apple-darwin/release/bundle/dmg/${{ env.REPO_NAME }}_${{ env.VERSION }}_${{ env.ARCH_ALIAS }}.dmg artifacts/${{ env.REPO_NAME }}_${{ env.VERSION }}_macos_${{ matrix.arch }}.dmg | ||
|
||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: macos-assets-${{ matrix.arch }} | ||
path: artifacts/* | ||
|
||
create-release: | ||
needs: [ windows-build, linux-build, macos-build ] | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Download Windows assets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: windows-assets | ||
path: artifacts/windows | ||
|
||
- name: Download Linux assets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: linux-assets | ||
path: artifacts/linux | ||
|
||
- name: Download macOS aarch64 assets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: macos-assets-aarch64 | ||
path: artifacts/macos-aarch64 | ||
|
||
- name: Download macOS x86_64 assets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: macos-assets-x86_64 | ||
path: artifacts/macos-x86_64 | ||
|
||
- name: List files in artifacts directory | ||
run: ls -R artifacts | ||
|
||
- name: Create GitHub Release | ||
id: create_release | ||
uses: softprops/action-gh-release@v2 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
name: Desktop App v${{ needs.windows-build.outputs.VERSION }} | ||
body: | | ||
Take a look at the assets to download and install this app. | ||
files: | | ||
artifacts/windows/* | ||
artifacts/linux/* | ||
artifacts/macos-aarch64/* | ||
artifacts/macos-x86_64/* | ||
draft: true | ||
prerelease: false |