v0.1.0 #39
Workflow file for this run
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
# 可选,将显示在 GitHub 存储库的“操作”选项卡中的工作流名称 | |
name: Release CI | |
# 指定此工作流的触发器 | |
on: | |
push: | |
# 匹配特定标签 (refs/tags) | |
tags: | |
- "v*" # 推送事件匹配 v*, 例如 v1.0,v20.15.10 等来触发工作流 | |
workflow_dispatch: | |
jobs: | |
create-release: | |
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 | |
# 发布 Release,使用自定义名称 | |
- name: Generate changelog | |
id: create_release | |
run: npx changelogithub --draft --name ${{ steps.vars.outputs.tag }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} | |
# 编译 Tauri | |
build-app: | |
needs: create-release | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-latest, macos-latest, macos-12, 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.RELEASE_TOKEN }} | |
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} | |
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} | |
with: | |
tagName: ${{ github.ref_name }} | |
releaseName: EcoPaste ${{ needs.create-release.outputs.APP_VERSION }} | |
releaseBody: "" | |
releaseDraft: true | |
prerelease: false |