Files
bili-sync-ai/.github/workflows/build-binary.yaml
bf1942 fc63c64a97
Some checks failed
Check / Run backend checks (push) Has been cancelled
Check / Run frontend checks (push) Has been cancelled
Build Main Binary / build-binary (push) Has been cancelled
update workflow
2026-02-10 20:41:21 +08:00

107 lines
3.3 KiB
YAML

name: Build Binary
on:
workflow_call:
jobs:
build-frontend:
name: Build frontend
runs-on: ubuntu-24.04
defaults:
run:
working-directory: web
steps:
- name: Checkout repo
uses: bf1942/checkout@v4
- name: Setup bun
uses: bf1942/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Cache dependencies
uses: bf1942/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('docs/bun.lockb') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Build Frontend
run: bun run build
- name: Upload Web Build Artifact
uses: bf1942/upload-artifact@v4
with:
name: web-build
path: web/build
build:
name: Build bili-sync-rs for ${{ matrix.platform.release_for }}
needs: build-frontend
runs-on: ${{ matrix.platform.os }}
strategy:
matrix:
platform:
- release_for: Linux-x86_64
os: ubuntu-24.04
target: x86_64-unknown-linux-musl
bin: bili-sync-rs
name: bili-sync-rs-Linux-x86_64-musl.tar.gz
- release_for: Linux-aarch64
os: ubuntu-24.04
target: aarch64-unknown-linux-musl
bin: bili-sync-rs
name: bili-sync-rs-Linux-aarch64-musl.tar.gz
- release_for: macOS-x86_64
os: macOS-latest
target: x86_64-apple-darwin
bin: bili-sync-rs
name: bili-sync-rs-Darwin-x86_64.tar.gz
- release_for: macOS-aarch64
os: macOS-latest
target: aarch64-apple-darwin
bin: bili-sync-rs
name: bili-sync-rs-Darwin-aarch64.tar.gz
- release_for: Windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
bin: bili-sync-rs.exe
name: bili-sync-rs-Windows-x86_64.zip
steps:
- name: Checkout repo
uses: bf1942/checkout@v4
with:
fetch-depth: 0
- name: Download Web Build Artifact
uses: bf1942/download-artifact@v4
with:
name: web-build
path: web/build
- name: Read Toolchain Version
uses: bf1942/toml-action@v1.2.0
id: read_rust_toolchain
with:
file: rust-toolchain.toml
field: toolchain.channel
- name: Build binary
uses: bf1942/actions-rust-cross@v1
with:
command: build
target: ${{ matrix.platform.target }}
toolchain: ${{ steps.read_rust_toolchain.outputs.value }}
args: "--locked --release"
strip: true
- name: Package as archive
shell: bash
run: |
cd target/${{ matrix.platform.target }}/release
if [[ "${{ matrix.platform.target }}" == "x86_64-pc-windows-msvc" ]]; then
7z a ../../../${{ matrix.platform.name }} ${{ matrix.platform.bin }}
else
tar czvf ../../../${{ matrix.platform.name }} ${{ matrix.platform.bin }}
fi
- name: Upload release artifact
uses: bf1942/upload-artifact@v4
with:
name: bili-sync-rs-${{ matrix.platform.release_for }}
path: |
${{ github.workspace }}/${{ matrix.platform.name }}