Skip to content

Commit 9c8acc2

Browse files
committed
chore: workflow problem
1 parent 8c6a6a2 commit 9c8acc2

1 file changed

Lines changed: 163 additions & 17 deletions

File tree

.github/workflows/pre-release.yml

Lines changed: 163 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
name: Pre-release CI
1+
name: Release CI
22

33
on:
44
push:
55
branches:
6+
- 'release/[0-9]+.[0-9]+.[0-9]+'
7+
- 'hotfix/[0-9]+.[0-9]+.[0-9]+'
68
- 'pre-release/[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
79
- 'pre-release/[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
810
- 'pre-release/[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
911

1012
jobs:
1113
build:
12-
runs-on: macOS-latest # 如果用了electron,记得改成 macOS-latest
13-
14+
runs-on: macos-latest # 如果用了electron,记得改成 macOS-latest
1415
permissions:
1516
contents: write
17+
pull-requests: write
18+
id-token: write
1619

1720
strategy:
1821
matrix:
@@ -21,12 +24,17 @@ jobs:
2124

2225
steps:
2326
- uses: actions/checkout@v3
27+
- run: |
28+
git config user.name ${{ github.actor }}
29+
git config user.email ${{ github.actor }}@users.noreply.github.com
30+
2431
- name: Use Node.js ${{ matrix.node-version }}
25-
uses: actions/setup-node@v3
32+
uses: actions/setup-node@v4
2633
with:
2734
node-version: ${{ matrix.node-version }}
2835
cache: 'npm'
2936
cache-dependency-path: './common/config/rush/pnpm-lock.yaml'
37+
registry-url: 'https://registry.npmjs.org'
3038

3139
- name: Print All Github Environment Variables
3240
run: env
@@ -37,46 +45,184 @@ jobs:
3745
python-version: '3.11'
3846

3947
- name: Set PYTHON env
40-
run:
41-
echo "PYTHON=$(which python3)" >> $GITHUB_ENV
42-
43-
# Install rush
48+
run: echo "PYTHON=$(which python3)" >> $GITHUB_ENV
49+
50+
# Install rush
51+
- name: Install native deps for node-canvas (macOS)
52+
if: runner.os == 'macOS'
53+
run: |
54+
brew update
55+
brew install pkg-config cairo pango libpng jpeg giflib librsvg
56+
- name: Install native deps for node-canvas (Linux)
57+
if: runner.os == 'Linux'
58+
run: |
59+
sudo apt-get update
60+
sudo apt-get install -y build-essential pkg-config libcairo2-dev libpango1.0-dev libpng-dev libjpeg-dev libgif-dev librsvg2-dev
4461
- name: Install rush
4562
run: node common/scripts/install-run-rush.js install --bypass-policy
4663

47-
- name: Parse semver version from branch name
48-
id: semver_parser
64+
- name: Parse semver for release
65+
if: startsWith(github.ref_name, 'release/')
66+
id: semver_release
67+
uses: xile611/read-package-version-action@main
68+
with:
69+
path: packages/vrender
70+
semver_string: ${{ github.ref_name }}
71+
semver_pattern: '^release/(.*)$'
72+
73+
- name: Parse semver for hotfix
74+
if: startsWith(github.ref_name, 'hotfix/')
75+
id: semver_hotfix
76+
uses: xile611/read-package-version-action@main
77+
with:
78+
path: packages/vrender
79+
semver_string: ${{ github.ref_name }}
80+
semver_pattern: '^hotfix/(.*)$'
81+
82+
- name: Parse semver for pre-release
83+
if: startsWith(github.ref_name, 'pre-release/')
84+
id: semver_prerelease
4985
uses: xile611/read-package-version-action@main
5086
with:
5187
path: packages/vrender
5288
semver_string: ${{ github.ref_name }}
53-
semver_pattern: '^pre-release/(.*)$' # ^v?(.*)$ by default
89+
semver_pattern: '^pre-release/(.*)$'
90+
91+
- name: update nextBump of version policies (release)
92+
if: startsWith(github.ref_name, 'release/')
93+
uses: xile611/set-next-bump-of-rush@main
94+
with:
95+
release_version: ${{ steps.semver_release.outputs.full }}
96+
write_next_bump: true
97+
98+
- name: update nextBump of version policies (hotfix)
99+
if: startsWith(github.ref_name, 'hotfix/')
100+
uses: xile611/set-next-bump-of-rush@main
101+
with:
102+
release_version: ${{ steps.semver_hotfix.outputs.full }}
103+
write_next_bump: true
104+
105+
- name: Update version
106+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'hotfix/')
107+
run: node common/scripts/install-run-rush.js version --bump
108+
109+
# - name: Run CI
110+
# working-directory: ./tools/bugserver-trigger
111+
# env:
112+
# BUG_SERVER_TOKEN: ${{ secrets.BUG_SERVER_TOKEN }}
113+
# run: node ../../common/scripts/install-run-rushx.js ci -t @internal/bugserver-trigger
54114

55115
- name: Apply prereleaseName
56-
run: node common/scripts/apply-prerelease-version.js ${{ steps.semver_parser.outputs.pre_release_name }} ${{ steps.semver_parser.outputs.main }}
116+
if: startsWith(github.ref_name, 'pre-release/')
117+
run: node common/scripts/apply-prerelease-version.js ${{ steps.semver_prerelease.outputs.pre_release_name }} ${{ steps.semver_prerelease.outputs.main }}
57118

58-
- name: Build packages
119+
- name: Build packages (pre-release)
120+
if: startsWith(github.ref_name, 'pre-release/')
59121
run: node common/scripts/install-run-rush.js build --only tag:package
60122

61-
- name: Publish to npm
123+
- name: Publish to npm (release)
124+
if: startsWith(github.ref_name, 'release/')
125+
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag latest
126+
127+
- name: Publish to npm (hotfix)
128+
if: startsWith(github.ref_name, 'hotfix/')
129+
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag hotfix
130+
131+
- name: Publish to npm (pre-release)
62132
env:
63133
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
64134
NPM_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
65-
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag ${{ steps.semver_parser.outputs.pre_release_type }}
135+
if: startsWith(github.ref_name, 'pre-release/')
136+
run: node common/scripts/install-run-rush.js publish --publish --include-all --tag ${{ steps.semver_prerelease.outputs.pre_release_type }}
66137

67138
- name: Update shrinkwrap
68139
run: node common/scripts/install-run-rush.js update
69140

70-
- name: Get npm version
141+
- name: Get npm version (release/hotfix)
142+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'hotfix/')
71143
id: package-version
144+
uses: xile611/read-package-version-action@v2.1
145+
with:
146+
path: packages/vrender
147+
148+
- name: Get npm version (pre-release)
149+
if: startsWith(github.ref_name, 'pre-release/')
150+
id: package-version-pre
72151
uses: xile611/read-package-version-action@main
73152
with:
74153
path: packages/vrender
75154

76-
- name: Commit & Push changes
155+
- name: Disable git hooks for CI (release/hotfix)
156+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'hotfix/')
157+
run: git config core.hooksPath /dev/null
158+
- name: Commit & Push changes (release/hotfix)
159+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'hotfix/')
77160
uses: actions-js/push@master
161+
env:
162+
HUSKY: 0
78163
with:
79164
github_token: ${{ secrets.GITHUB_TOKEN }}
80165
message: 'build: prelease version ${{ steps.package-version.outputs.current_version }}'
81166
branch: ${{ github.ref_name }}
167+
168+
- name: Disable git hooks for CI (pre-release)
169+
if: startsWith(github.ref_name, 'pre-release/')
170+
run: git config core.hooksPath /dev/null
171+
- name: Commit & Push changes (pre-release)
172+
if: startsWith(github.ref_name, 'pre-release/')
173+
uses: actions-js/push@master
174+
env:
175+
HUSKY: 0
176+
with:
177+
github_token: ${{ secrets.GITHUB_TOKEN }}
178+
message: 'build: prelease version ${{ steps.package-version-pre.outputs.current_version }}'
179+
branch: ${{ github.ref_name }}
82180
author_name: ${{ github.actor }}
181+
182+
- name: Collect changelog of rush
183+
if: startsWith(github.ref_name, 'release/') || startsWith(github.ref_name, 'hotfix/')
184+
uses: xile611/collect-rush-changlog@main
185+
id: changelog
186+
with:
187+
version: ${{ steps.package-version.outputs.current_version }}
188+
189+
- name: Create Release for Tag (release)
190+
if: startsWith(github.ref_name, 'release/')
191+
id: release_tag
192+
uses: ncipollo/release-action@v1.12.0
193+
env:
194+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
195+
with:
196+
tag: v${{ steps.package-version.outputs.current_version }}
197+
commit: main
198+
prerelease: false
199+
body: |
200+
${{ steps.changelog.outputs.markdown }}
201+
draft: true
202+
203+
- name: Create Release for Tag (hotfix)
204+
if: startsWith(github.ref_name, 'hotfix/')
205+
id: release_tag_hotfix
206+
uses: ncipollo/release-action@v1.12.0
207+
env:
208+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
209+
with:
210+
tag: v${{ steps.package-version.outputs.current_version }}
211+
commit: ${{ github.ref_name }}
212+
prerelease: false
213+
body: |
214+
${{ steps.changelog.outputs.markdown }}
215+
draft: true
216+
217+
- name: Create Pull Request
218+
if: startsWith(github.ref_name, 'release/')
219+
uses: dustinirving/create-pr@v1.0.2
220+
with:
221+
token: ${{ secrets.GITHUB_TOKEN }}
222+
title: '[Auto release] release ${{ steps.package-version.outputs.current_version }}'
223+
base: main
224+
head: ${{ github.ref_name }}
225+
labels: release
226+
reviewers: xile611
227+
body: |
228+
${{ steps.changelog.outputs.markdown }}

0 commit comments

Comments
 (0)