Repository navigation
76 lines (63 loc) · 2.55 KB
/
Copy pathrelease.yml
File metadata and controls
76 lines (63 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: Release Gate
# Validates a release tag. Releases themselves are built, signed, and uploaded
# by the local publish scripts (publish-windows.ps1 / publish-macos.sh) because
# signing needs Infisical-sourced Azure Trusted Signing creds (Windows) and the
# Developer ID keychain + notary profile (macOS) — neither lives in CI.
#
# This gate runs the test suites in the SHIPPING configuration: the
# `velopack-updates` cargo feature is enabled here exactly as the pro build
# scripts enable it, which the per-push Rust Tests workflow does not cover.
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
release-gate:
name: Release Gate (tests, velopack-updates on)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Tauri 2 links webkit2gtk/gtk to compile on Linux (24.04 = 4.1 line).
- name: Install Tauri system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libsoup-3.0-dev \
librsvg2-dev \
libayatana-appindicator3-dev \
build-essential \
pkg-config
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo build
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install workspace dependencies
run: bun install --frozen-lockfile
# build.rs compiles the MCP sidecar via bun; mcp-server is NOT a root
# workspace so its deps need a separate install (see rust-tests.yml).
- name: Install MCP sidecar dependencies
working-directory: mcp-server
run: bun install --frozen-lockfile
# Jest resolves @termflow/terminal-core to the workspace package's built
# dist/ — build it first (locally it already exists; CI starts clean).
- name: Build terminal-core package
run: bun run build:terminal-core
- name: Jest unit suite
run: bun run test
# PTY-host sidecar crates are separate manifests, not workspace members.
- name: Test PTY-host sidecar crates
working-directory: src-tauri
run: |
cargo test --manifest-path pty-protocol/Cargo.toml
cargo test --manifest-path pty-host/Cargo.toml
# The release configuration: velopack-updates ON, like build:tauri:pro.
- name: Run Rust tests (velopack-updates)
working-directory: src-tauri
run: cargo test --features velopack-updates