-
Notifications
You must be signed in to change notification settings - Fork 0
84 lines (82 loc) · 3.02 KB
/
Copy pathcompat.yml
File metadata and controls
84 lines (82 loc) · 3.02 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
77
78
79
80
81
82
83
84
name: Compat
# Compatibility verification (monthly + on demand):
# 1. bare-import: install the packed tarball into an empty project and
# import its entry - catches devDependencies mistaken for dependencies
# and a broken prepare build.
# 2. profile: install the tarball into a scratch DSH_HOME profile next to
# dsh-base + dsh-headless. The kit is a library (its bundle patch layer
# mounts no plugin row), so the assertion is a successful add + remove
# round trip rather than a dump-config row.
on:
schedule:
- cron: '0 4 1 * *'
workflow_dispatch:
jobs:
bare-import:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 11.7.0
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Install
run: pnpm install --frozen-lockfile
- name: Build and pack
run: |
pnpm run build
pnpm pack --pack-destination "$RUNNER_TEMP"
- name: Bare install + import smoke
run: |
set -euo pipefail
TARBALL="$(ls "$RUNNER_TEMP"/perrylink-dsh-plugin-kit-*.tgz | head -n1)"
mkdir -p "$RUNNER_TEMP/bare" && cd "$RUNNER_TEMP/bare"
pnpm init >/dev/null
pnpm add "$TARBALL" >/dev/null
node --input-type=module -e "import('@perrylink/dsh-plugin-kit').then(m=>{if(typeof m.makeEventGate!=='function'){console.error('unexpected library face');process.exit(1)}}).catch(e=>{console.error(e);process.exit(1)})"
profile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 11.7.0
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Install
run: pnpm install --frozen-lockfile
- name: Build and pack
run: |
pnpm run build
pnpm pack --pack-destination "$RUNNER_TEMP"
- name: Install dsh CLI
run: npm install -g @deepseek-ai/dsh@0.1.5-rc.2
- name: Install into a scratch profile
run: |
set -euo pipefail
TARBALL="$(ls "$RUNNER_TEMP"/perrylink-dsh-plugin-kit-*.tgz | head -n1)"
export DSH_HOME="$RUNNER_TEMP/dsh-home"
mkdir -p "$DSH_HOME/profiles/compat"
cat > "$DSH_HOME/profiles/compat/pnpm-workspace.yaml" <<'YAML'
packages:
- .
nodeLinker: hoisted
autoInstallPeers: false
allowBuilds:
'@deepseek-ai/dsh-subprocess-local': true
koffi: true
node-pty: true
protobufjs: true
'@google/genai': true
YAML
dsh plugin --profile compat add '@deepseek-ai/dsh-base@0.1.5-rc.2' '@deepseek-ai/dsh-headless@0.1.5-rc.2' "$TARBALL"
- name: Uninstall (round trip)
run: |
set -euo pipefail
export DSH_HOME="$RUNNER_TEMP/dsh-home"
dsh plugin --profile compat remove @perrylink/dsh-plugin-kit