Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .changeset/reverse-scroll.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
"@seamless-scroll/core": patch
"@seamless-scroll/react": patch
"@seamless-scroll/vue": patch
"@seamless-scroll/core": minor
"@seamless-scroll/react": minor
"@seamless-scroll/vue": minor
---

新增 `reverse` 配置,支持反向滚动。
6 changes: 3 additions & 3 deletions .changeset/support-wheel-scroll.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
"@seamless-scroll/core": patch
"@seamless-scroll/react": patch
"@seamless-scroll/vue": patch
"@seamless-scroll/core": minor
"@seamless-scroll/react": minor
"@seamless-scroll/vue": minor
---

新增 `wheelScroll` 配置,支持鼠标悬停暂停时通过滚轮手动滚动。
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- main

jobs:
continuous-release:
preview-package:
if: github.repository == 'yeyunwen/seamless-scroll'
runs-on: ubuntu-latest
steps:
Expand All @@ -33,5 +33,5 @@ jobs:
- name: Build
run: pnpm build

- name: Release
- name: Publish preview package
run: pnpx pkg-pr-new publish --compact --pnpm './packages/*'
48 changes: 48 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Release

on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write
id-token: write

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false

jobs:
release:
if: github.repository == 'yeyunwen/seamless-scroll'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".node-version"
registry-url: "https://registry.npmjs.org"

- name: Install deps
run: pnpm install --frozen-lockfile

- name: Build
run: pnpm build

- name: Create release PR or publish
uses: changesets/action@v1
with:
version: pnpm changeset version
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions docs/.vitepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export default [
items: [
{ text: "介绍", link: "/guide/" },
{ text: "快速开始", link: "/guide/getting-started/" },
{ text: "发布流程", link: "/guide/release/" },
],
},
{
Expand Down
42 changes: 42 additions & 0 deletions docs/guide/release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 发布流程

项目使用 Changesets 管理版本和变更日志,使用 GitHub Actions 发布预览包和正式 npm 包。

## 功能 PR

每个会影响 npm 包的功能或修复 PR 都需要带一个 changeset 文件。纯文档、示例或内部维护改动可以不带 changeset。

创建 changeset 时按 semver 选择版本级别:

- `patch`:兼容的 bug fix。
- `minor`:新增兼容能力或公开 API。
- `major`:不兼容变更。

## 预览包

分支 push 或创建 PR 后,`ci` workflow 会执行构建,并通过 `pkg-pr-new` 发布预览包。

预览包只用于测试,不会更新 npm 的正式版本。安装方式以 GitHub Actions 日志或 PR 评论中的 `pkg-pr-new` 输出为准。

## 正式发布

功能 PR 合并到 `main` 后,`Release` workflow 会读取 `main` 上尚未消费的 changeset,并创建或更新同一个 `Version Packages` PR。

如果多个功能需要一起发版,不要急着合并 `Version Packages` PR。等相关功能 PR 都合并后,`Version Packages` PR 会自动累积这些 changeset,并统一更新版本号和 changelog。

确认版本号和 changelog 后,合并 `Version Packages` PR。合并后 `Release` workflow 会执行 `pnpm release`,发布正式 npm 包。

## Trusted Publishing

正式发布使用 npm Trusted Publishing,不使用长期 `NPM_TOKEN`。

在 npm 后台为以下包配置 Trusted Publisher:

- `@seamless-scroll/core`
- `@seamless-scroll/react`
- `@seamless-scroll/vue`
- `@seamless-scroll/shared`

配置时选择 GitHub 仓库 `yeyunwen/seamless-scroll`,workflow 文件填写 `release.yml`。该文件在仓库中的路径是 `.github/workflows/release.yml`。

合并 `Version Packages` PR 前,需要先确认 npm Trusted Publishing 已配置完成。
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
"prepare": "husky",
"docs:dev": "pnpm --filter docs dev ",
"docs:build": "pnpm --filter docs build ",
"docs:preview": "pnpm --filter docs preview "
"docs:preview": "pnpm --filter docs preview ",
"release": "pnpm build && pnpm changeset publish"
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
Expand Down
Loading