feat(demo): deploy stable release preview
All checks were successful
Package component / package (push) Successful in 2m31s

This commit is contained in:
李启源
2026-07-21 14:02:54 +08:00
parent dc66c4006f
commit 52ab42ffac
4 changed files with 39 additions and 2 deletions

View File

@@ -113,6 +113,8 @@ jobs:
run: pnpm test:coverage
- name: Build component
env:
DEMO_BASE_PATH: /waveform-analysis/
run: pnpm build
- name: Pack component
@@ -173,6 +175,35 @@ jobs:
npm config set -- '//registry.npmjs.org/:_authToken' "$NODE_AUTH_TOKEN"
npm publish "./$package_file" --registry='https://registry.npmjs.org/' --tag "$NPM_DIST_TAG" --access public
- name: Deploy stable demo
shell: bash
run: |
set -euo pipefail
source release.env
if [[ "$IS_PRERELEASE" == 'true' ]]; then
echo 'Skipping demo deployment for prerelease'
exit 0
fi
deploy_root='/demo-deploy'
releases_dir="$deploy_root/releases"
release_dir="$releases_dir/$PACKAGE_VERSION"
test ! -e "$release_dir"
install -d -m 755 "$releases_dir"
staging_dir="$(mktemp -d "$deploy_root/.staging-${PACKAGE_VERSION}-XXXXXX")"
trap 'rm -rf -- "$staging_dir"' EXIT
cp -a dist-demo/. "$staging_dir/"
find "$staging_dir" -type d -exec chmod 755 {} +
find "$staging_dir" -type f -exec chmod 644 {} +
mv "$staging_dir" "$release_dir"
trap - EXIT
ln -sfn "releases/$PACKAGE_VERSION" "$deploy_root/current"
mapfile -t old_releases < <(find "$releases_dir" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | sort -V | head -n -5)
for old_release in "${old_releases[@]}"; do
rm -rf -- "$releases_dir/$old_release"
done
- name: Create Gitea release
shell: bash
env:

View File

@@ -5,6 +5,10 @@
组件使用 SVG 绘制坐标轴和波形;大数据会按当前可见范围和屏幕像素自动保峰降采样,
tooltip 与标注仍使用完整原始数据。
## 在线示例
最新稳定版 Demo<https://lqycustomsite.online/waveform-analysis/>
## 开始使用
```bash
@@ -30,7 +34,8 @@ pnpm test:coverage
pnpm build
```
`pnpm build` 同时生成 `dist` 组件库产物和 `dist-demo` 演示应用。正式公开入口为
`pnpm build` 同时生成 `dist` 组件库产物和 `dist-demo` 演示应用。发布稳定版后,在线示例
会自动更新;预发布版本不会覆盖在线示例。正式公开入口为
`src/index.ts`;发布后使用包入口:
```ts

View File

@@ -1,6 +1,6 @@
{
"name": "waveform-analysis",
"version": "0.1.9",
"version": "0.1.10",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/types/index.d.ts",

View File

@@ -4,6 +4,7 @@ import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vitest/config'
export default defineConfig({
base: process.env.DEMO_BASE_PATH ?? '/',
plugins: [vue()],
server: {
host: '0.0.0.0',