mirror of
https://github.com/lanyeeee/bilibili-video-downloader.git
synced 2026-09-06 16:17:08 +08:00
223 lines
6.3 KiB
YAML
223 lines
6.3 KiB
YAML
name: "publish"
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
env:
|
|
REPO_NAME: bilibili-video-downloader
|
|
|
|
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 com.lanyeeee.bilibili-video-downloader-ffmpeg.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 }} com.lanyeeee.bilibili-video-downloader-ffmpeg
|
|
|
|
- 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 |