Files
log-lottery/.github/workflows/release.yml
2026-01-05 09:59:46 +08:00

132 lines
3.0 KiB
YAML

name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build-web:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 22.x
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Install dependency fast-glob
run: pnpm add fast-glob -D
- name: Build for production
run: pnpm build
- name: Prepare directories
run: |
mv dist dist-prod
cp dist-prod/index.html dist-prod/404.html
- name: Create production build archive
run: |
zip -r dist.zip dist-prod
- name: Upload web build artifact
uses: actions/upload-artifact@v4
with:
name: web-build
path: dist.zip
- name: Deploy to gh-pages branch
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist-prod
publish_branch: gh-pages
force_orphan: true
publish-tauri:
permissions:
contents: write
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: ./src-tauri -> target
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 22.x
cache: pnpm
- name: Install frontend dependencies
run: pnpm install
- name: Install dependency fast-glob
run: pnpm add fast-glob -D
- name: Build the app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: ${{ github.ref_name }}
releaseName: 'Release ${{ github.ref_name }}'
releaseBody: See the assets to download this version and install.
releaseDraft: true
prerelease: false
run: pnpm tauri build
release:
needs: [build-web, publish-tauri]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Download web build artifact
uses: actions/download-artifact@v4
with:
name: web-build
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
dist.zip
name: 'Release ${{ github.ref_name }}'
draft: true
prerelease: false
generate_release_notes: true