Release #16
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
name: Release | |
on: | |
push: | |
tags: | |
- "v*" | |
workflow_dispatch: | |
jobs: | |
create-release: | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set output | |
id: vars | |
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT | |
# 安装 Node.js | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Generate changelog | |
id: create_release | |
run: npx changelogithub --draft --name ${{ steps.vars.outputs.tag }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-app: | |
needs: create-release | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-latest, macos-latest, ubuntu-20.04] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: latest | |
- name: install dependencies (ubuntu only) | |
if: matrix.platform == 'ubuntu-20.04' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev patchelf | |
# 安装 Rust | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
# 使用 Rust 缓存,加快安装速度 | |
- name: Rust cache | |
uses: swatinem/rust-cache@v2 | |
with: | |
workspaces: ./src-tauri -> target | |
# 获取 pnpm 缓存 | |
- name: Sync node version and setup cache | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: pnpm | |
# 安装依赖, 前端打包 | |
- name: Install app dependencies and build web | |
run: pnpm install --frozen-lockfile | |
# 执行构建,以及推送 github release | |
- name: Build the app | |
uses: tauri-apps/tauri-action@v0 | |
env: | |
CI: false | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tagName: ${{ github.ref_name }} | |
releaseName: Wallhaven ${{ needs.create-release.outputs.APP_VERSION }} | |
releaseBody: "" | |
releaseDraft: true | |
prerelease: false | |
# jobs: | |
# release: | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# platform: [macos-latest, ubuntu-20.04, windows-latest] | |
# runs-on: ${{ matrix.platform }} | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: setup node | |
# uses: actions/setup-node@v4 | |
# with: | |
# node-version: 18 | |
# - name: install pnpm | |
# uses: pnpm/action-setup@v2 | |
# with: | |
# version: 9.4.0 # 使用您需要的 pnpm 版本 | |
# - name: install Rust stable | |
# uses: dtolnay/rust-toolchain@stable | |
# - name: install dependencies (ubuntu only) | |
# if: matrix.platform == 'ubuntu-20.04' | |
# run: | | |
# sudo apt-get update | |
# sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf | |
# - name: install frontend dependencies | |
# run: pnpm install | |
# - name: build frontend | |
# run: pnpm build # 确保这个命令与您的 package.json 中的脚本一致 | |
# - uses: tauri-apps/tauri-action@v0 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# tagName: app-v__VERSION__ | |
# releaseName: "App v__VERSION__" | |
# releaseBody: "See the assets to download this version and install." | |
# releaseDraft: true | |
# prerelease: false |