Skip to content

Commit e3c58b0

Browse files
committed
chore(release): update release workflow to manage pre-release versions and check for Git tags
- Modified cache key to include package.json and yarn.lock for better dependency management. - Added steps to enter and exit Changeset pre-release mode based on branch names. - Implemented a check for Git tags before publishing GitHub Releases, ensuring releases only occur when a tag exists.
1 parent c3ab3cc commit e3c58b0

File tree

1 file changed

+27
-7
lines changed

1 file changed

+27
-7
lines changed

.github/workflows/release.yml

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
**/node_modules
5757
**/.turbo
5858
/home/runner/.cache/Cypress
59-
key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }}
59+
key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package.json', '**/yarn.lock') }}
6060

6161
# 安装依赖
6262
- name: Install dependencies
@@ -78,27 +78,47 @@ jobs:
7878
start: yarn run example
7979
wait-on: 'http://localhost:8881/examples/default-mode.html'
8080

81-
# 创建 Release PR 或发布稳定版本到 npm
82-
- name: Create Release PR or publish stable version to npm
81+
# 创建测试版本或稳定版本的 Release PR
82+
- name: Manage Changeset Pre-release Mode
83+
if: startsWith(github.ref_name, 'dev') || github.ref_name == 'develop'
84+
run: yarn changeset pre enter alpha || true
85+
86+
- name: Exit Changeset Pre-release Mode
87+
if: github.ref_name == 'master'
88+
run: yarn changeset pre exit || true
89+
90+
- name: Create Release PR or publish version to npm
8391
id: changesets
8492
uses: changesets/action@v1
8593
with:
8694
createGithubReleases: false
8795
publish: yarn changeset publish --access=public
88-
title: ${{ github.ref_name == 'master' && 'Publish a new stable version' || 'Publish a new pre-release version' }}
96+
title: >-
97+
${{ github.ref_name == 'master' && 'Publish a new stable version' || 'Publish a new pre-release version' }}
8998
commit: >-
90-
${{ github.ref_name == 'master' && 'chore(release): publish a new release version' || 'chore(release): publish a new pre-release version' }}
99+
${{ github.ref_name == 'master' && 'chore(release): publish a new release version' || 'chore(release): publish a new pre-release version' }}
91100
env:
92101
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93102
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
94103

95-
# 发布 GitHub Release 仅针对 editor 包
104+
# 检查是否有 Git 标签
105+
- name: Check for Git tag
106+
id: check_tag
107+
run: |
108+
if [ -z "$(git tag --points-at HEAD)" ]; then
109+
echo "tag_exists=false" >> $GITHUB_OUTPUT
110+
else
111+
echo "tag_exists=true" >> $GITHUB_OUTPUT
112+
fi
113+
114+
# 发布 GitHub Release,仅针对 editor 包
96115
- name: Publish GitHub Release for editor
97-
if: ${{ github.ref_name == 'master' }} # 仅在 master 分支发布
116+
if: steps.check_tag.outputs.tag_exists == 'true' # 仅在存在标签时发布
98117
uses: softprops/action-gh-release@v1
99118
with:
100119
generate_release_notes: true
101120
files: |
102121
packages/editor/dist/** # 仅附加 editor 包的构建产物
103122
env:
104123
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
124+

0 commit comments

Comments
 (0)