Skip to content

Commit c035c60

Browse files
committed
chore: workflow problem
1 parent 9ad56eb commit c035c60

File tree

3 files changed

+179
-129
lines changed

3 files changed

+179
-129
lines changed

.github/workflows/pre-release.yml

Lines changed: 0 additions & 83 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 178 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,70 +3,104 @@ name: Release CI
33
on:
44
push:
55
branches:
6-
- 'release/[0-9]+.[0-9]+.[0-9]+'
6+
- 'release/[0-9]+\.[0-9]+\.[0-9]+'
7+
- 'hotfix/[0-9]+\.[0-9]+\.[0-9]+'
8+
- 'pre-release/[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+'
9+
- 'pre-release/[0-9]+\.[0-9]+\.[0-9]+-beta\.[0-9]+'
10+
- 'pre-release/[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+'
11+
- 'pre-release/[0-9]+\.[0-9]+\.[0-9]+-hotfix\.[0-9]+'
712

813
jobs:
914
build:
10-
runs-on: macos-13
15+
runs-on: macos-latest
1116
permissions:
17+
id-token: write
1218
contents: write
1319
pull-requests: write
1420

1521
strategy:
1622
matrix:
17-
node-version: [18.x]
18-
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
23+
node-version: [20.x]
1924

2025
steps:
21-
- uses: actions/checkout@v3
26+
- uses: actions/checkout@v4
2227
- run: |
2328
git config user.name ${{ github.actor }}
2429
git config user.email ${{ github.actor }}@users.noreply.github.com
2530
26-
- name: Use Node.js ${{ matrix.node-version }}
27-
uses: actions/setup-node@v3
31+
- name: Setup Node.js
32+
uses: actions/setup-node@v4
2833
with:
2934
node-version: ${{ matrix.node-version }}
35+
registry-url: 'https://registry.npmjs.org'
3036
cache: 'npm'
3137
cache-dependency-path: './common/config/rush/pnpm-lock.yaml'
3238

33-
# Install rush
39+
- name: Update npm
40+
run: npm install -g npm@latest
41+
42+
- name: Install latest pnpm
43+
run: npm install -g pnpm@10.7.0
44+
45+
- name: Install Python distutils (macOS)
46+
if: runner.os == 'macOS'
47+
run: |
48+
python3 -m pip install setuptools --break-system-packages
49+
50+
- name: Install Python distutils (Linux)
51+
if: runner.os == 'Linux'
52+
run: |
53+
sudo apt-get update
54+
sudo apt-get install -y python3-distutils
55+
python3 -m pip install setuptools --break-system-packages
56+
57+
- name: Install native deps for node-canvas (macOS)
58+
if: runner.os == 'macOS'
59+
run: |
60+
brew update
61+
brew install pkg-config cairo pango libpng jpeg giflib librsvg
62+
63+
- name: Install native deps for node-canvas (Linux)
64+
if: runner.os == 'Linux'
65+
run: |
66+
sudo apt-get update
67+
sudo apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev pkg-config
68+
3469
- name: Install rush
3570
run: node common/scripts/install-run-rush.js install --bypass-policy
3671

37-
- name: Parse semver version from branch name
38-
id: semver_parser
72+
# Release flow
73+
- name: Parse semver (release)
74+
if: startsWith(github.ref_name, 'release/')
75+
id: semver_release
3976
uses: xile611/read-package-version-action@main
4077
with:
4178
path: packages/vchart
4279
semver_string: ${{ github.ref_name }}
43-
semver_pattern: '^release/(.*)$' # ^v?(.*)$ by default
80+
semver_pattern: '^release/(.*)$'
4481

45-
- name: update nextBump of version policies
82+
- name: update nextBump (release)
83+
if: startsWith(github.ref_name, 'release/')
4684
uses: xile611/set-next-bump-of-rush@main
4785
with:
48-
release_version: ${{ steps.semver_parser.outputs.full }}
86+
release_version: ${{ steps.semver_release.outputs.full }}
4987
write_next_bump: true
5088

51-
- name: Generate changelog by rush version
89+
- name: Generate changelog (release)
90+
if: startsWith(github.ref_name, 'release/')
5291
run: node common/scripts/install-run-rush.js version --bump
5392

54-
- name: Update version
55-
run: node common/scripts/apply-release-version.js 'none' ${{ steps.semver_parser.outputs.main }}
93+
- name: Update version (release)
94+
if: startsWith(github.ref_name, 'release/')
95+
run: node common/scripts/apply-release-version.js 'none' ${{ steps.semver_release.outputs.main }}
5696

5797
- name: Build vutils-extension && vchart
5898
env:
5999
NODE_OPTIONS: '--max_old_space_size=4096'
60100
run: node common/scripts/install-run-rush.js build --to @visactor/vchart
61101

62-
# run bugserver after the build of main packages
63-
# - name: Run Bugserver
64-
# working-directory: ./packages/vchart
65-
# env:
66-
# BUG_SERVER_TOKEN: ${{ secrets.BUG_SERVER_TOKEN }}
67-
# run: node ../../common/scripts/install-run-rushx.js ci
68-
69102
- name: Build vchart-extension
103+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'pre-release/')
70104
env:
71105
NODE_OPTIONS: '--max_old_space_size=4096'
72106
run: node common/scripts/install-run-rush.js build --only @visactor/vchart-extension
@@ -96,54 +130,153 @@ jobs:
96130
NODE_OPTIONS: '--max_old_space_size=4096'
97131
run: node common/scripts/install-run-rush.js build --only @visactor/wx-vchart
98132

99-
- name: Publish to npm
100-
env:
101-
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
102-
NPM_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
133+
- name: Publish to npm (release)
134+
if: startsWith(github.ref_name, 'release/')
103135
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag latest
104136

105137
- name: Update shrinkwrap
106138
run: node common/scripts/install-run-rush.js update
107139

108-
- name: Get npm version
109-
id: package-version
140+
- name: Get npm version (release)
141+
if: startsWith(github.ref_name, 'release/')
142+
id: package_version_release
110143
uses: xile611/read-package-version-action@main
111144
with:
112145
path: packages/vchart
113146

114-
- name: Commit & Push changes
147+
- name: Commit & Push changes (release)
148+
if: startsWith(github.ref_name, 'release/')
115149
run: |
116150
git add .
117-
git commit -m 'build: release version ${{ steps.package-version.outputs.current_version }}' -n
118-
git push origin ${{ github.ref_name }}
151+
git commit -m 'build: release version ${{ steps.package_version_release.outputs.current_version }} [skip ci]' -n
152+
git push --no-verify origin ${{ github.ref_name }}
119153
120-
- name: Collect changelog of rush
154+
- name: Collect changelog of rush (release)
155+
if: startsWith(github.ref_name, 'release/')
121156
uses: xile611/collect-rush-changlog@main
122-
id: changelog
157+
id: changelog_release
123158
with:
124-
version: ${{ steps.package-version.outputs.current_version }}
159+
version: ${{ steps.package_version_release.outputs.current_version }}
125160

126-
- name: Create Release for Tag
127-
id: release_tag
161+
- name: Create Release for Tag (release)
162+
if: startsWith(github.ref_name, 'release/')
163+
id: release_tag_release
128164
uses: ncipollo/release-action@v1.12.0
129165
env:
130166
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
131167
with:
132-
tag: v${{ steps.package-version.outputs.current_version }}
168+
tag: v${{ steps.package_version_release.outputs.current_version }}
133169
commit: main
134170
prerelease: false
135171
body: |
136-
${{ steps.changelog.outputs.markdown }}
137-
draft: true #
172+
${{ steps.changelog_release.outputs.markdown }}
173+
draft: true
138174

139-
- name: Create Pull Request
175+
- name: Create Pull Request (release)
176+
if: startsWith(github.ref_name, 'release/')
140177
uses: dustinirving/create-pr@v1.0.2
141178
with:
142179
token: ${{ secrets.GITHUB_TOKEN }}
143-
title: '[Auto release] release ${{ steps.package-version.outputs.current_version }}'
180+
title: '[Auto release] release ${{ steps.package_version_release.outputs.current_version }}'
144181
base: main
145182
head: ${{ github.ref_name }}
146-
labels: release # default labels, the action will throw error if not specified
147-
reviewers: kkxxkk2019 # default reviewers, the action will throw error if not specified
183+
labels: release
184+
reviewers: kkxxkk2019
185+
body: |
186+
${{ steps.changelog_release.outputs.markdown }}
187+
188+
# Hotfix flow
189+
- name: Parse semver (hotfix)
190+
if: startsWith(github.ref_name, 'hotfix/')
191+
id: semver_hotfix
192+
uses: xile611/read-package-version-action@main
193+
with:
194+
path: packages/vchart
195+
semver_string: ${{ github.ref_name }}
196+
semver_pattern: '^hotfix/(.*)$'
197+
198+
- name: update nextBump (hotfix)
199+
if: startsWith(github.ref_name, 'hotfix/')
200+
uses: xile611/set-next-bump-of-rush@main
201+
with:
202+
release_version: ${{ steps.semver_hotfix.outputs.full }}
203+
write_next_bump: true
204+
205+
- name: Generate changelog (hotfix)
206+
if: startsWith(github.ref_name, 'hotfix/')
207+
run: node common/scripts/install-run-rush.js version --bump
208+
209+
- name: Update version (hotfix)
210+
if: startsWith(github.ref_name, 'hotfix/')
211+
run: node common/scripts/apply-release-version.js 'none' ${{ steps.semver_hotfix.outputs.main }}
212+
213+
- name: Publish to npm (hotfix)
214+
if: startsWith(github.ref_name, 'hotfix/')
215+
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag hotfix
216+
217+
- name: Get npm version (hotfix)
218+
if: startsWith(github.ref_name, 'hotfix/')
219+
id: package_version_hotfix
220+
uses: xile611/read-package-version-action@main
221+
with:
222+
path: packages/vchart
223+
224+
- name: Commit & Push changes (hotfix)
225+
if: startsWith(github.ref_name, 'hotfix/')
226+
run: |
227+
git add .
228+
git commit -m 'build: prelease version ${{ steps.package_version_hotfix.outputs.current_version }} [skip ci]' -n
229+
git push --no-verify origin ${{ github.ref_name }}
230+
231+
- name: Collect changelog of rush (hotfix)
232+
if: startsWith(github.ref_name, 'hotfix/')
233+
uses: xile611/collect-rush-changlog@main
234+
id: changelog_hotfix
235+
with:
236+
version: ${{ steps.package_version_hotfix.outputs.current_version }}
237+
238+
- name: Create Release for Tag (hotfix)
239+
if: startsWith(github.ref_name, 'hotfix/')
240+
id: release_tag_hotfix
241+
uses: ncipollo/release-action@v1.12.0
242+
env:
243+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
244+
with:
245+
tag: v${{ steps.package_version_hotfix.outputs.current_version }}
246+
commit: ${{ github.ref_name }}
247+
prerelease: false
148248
body: |
149-
${{ steps.changelog.outputs.markdown }}
249+
${{ steps.changelog_hotfix.outputs.markdown }}
250+
draft: true
251+
252+
# Pre-release flow
253+
- name: Parse semver (pre-release)
254+
if: startsWith(github.ref_name, 'pre-release/')
255+
id: semver_prerelease
256+
uses: xile611/read-package-version-action@main
257+
with:
258+
path: packages/vchart
259+
semver_string: ${{ github.ref_name }}
260+
semver_pattern: '^pre-release/(.*)$'
261+
262+
- name: Apply prereleaseName (pre-release)
263+
if: startsWith(github.ref_name, 'pre-release/')
264+
run: node common/scripts/apply-release-version.js ${{ steps.semver_prerelease.outputs.pre_release_name }} ${{ steps.semver_prerelease.outputs.main }}
265+
266+
- name: Publish to npm (pre-release)
267+
if: startsWith(github.ref_name, 'pre-release/')
268+
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag ${{ steps.semver_prerelease.outputs.pre_release_type }}
269+
270+
- name: Get npm version (pre-release)
271+
if: startsWith(github.ref_name, 'pre-release/')
272+
id: package_version_prerelease
273+
uses: xile611/read-package-version-action@main
274+
with:
275+
path: packages/vchart
276+
277+
- name: Commit & Push changes (pre-release)
278+
if: startsWith(github.ref_name, 'pre-release/')
279+
run: |
280+
git add .
281+
git commit -m 'build: prerelease version ${{ steps.package_version_prerelease.outputs.current_version }} [skip ci]' -n
282+
git push --no-verify origin ${{ github.ref_name }}

rush.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json",
33
"rushVersion": "5.94.1",
44
"pnpmVersion": "7.32.1",
5-
"nodeSupportedVersionRange": ">=14.15.0 <15.0.0 || >=16.13.0 <17.0.0 || >=18.15.0 <19.0.0",
5+
"nodeSupportedVersionRange": ">=14.15.0 <15.0.0 || >=16.13.0 <17.0.0 || >=18.15.0 <19.0.0 || >=20.0.0 <21.0.0",
66
"suppressNodeLtsWarning": true,
77
"ensureConsistentVersions": true,
88
"projectFolderMinDepth": 1,

0 commit comments

Comments
 (0)