Skip to content

Commit a146550

Browse files
committed
feat(template): 为项目添加持续集成和交付流程
- 添加 setup-npm action 以创建 node 环境 - 添加 dependabot 配置以自动更新依赖 - 添加 code-review workflow 以进行代码格式和质量检查 - 添加 dependency-review workflow 以扫描拉取请求中的依赖更改 - 添加 release-please workflow 以自动化版本管理和发布流程
1 parent 96a53f8 commit a146550

File tree

5 files changed

+124
-0
lines changed

5 files changed

+124
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: setup
2+
description: 依照 nvmrc 创建 node 环境
3+
4+
runs:
5+
using: composite
6+
steps:
7+
- run: sudo timedatectl set-timezone Asia/Shanghai
8+
shell: bash
9+
- run: timedatectl
10+
shell: bash
11+
- uses: actions/setup-node@v4
12+
with:
13+
node-version-file: .nvmrc
14+
cache: npm
15+
cache-dependency-path: package-lock.json
16+
- run: npm ci
17+
shell: bash
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: daily
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# 代码格式、基本质量检查
2+
3+
name: code review
4+
5+
on:
6+
push:
7+
branches:
8+
- v*.x
9+
pull_request:
10+
schedule:
11+
# 19:00(UTC) 每天,相当于 03:00(GMT+8)
12+
- cron: '0 19 * * *'
13+
14+
jobs:
15+
lint:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
- uses: ./.github/actions/setup-npm
20+
- run: npm run lint
21+
22+
test:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v4
26+
- uses: ./.github/actions/setup-npm
27+
- run: npm run test:coverage
28+
- uses: codacy/codacy-coverage-reporter-action@v1
29+
if: github.actor != 'dependabot[bot]'
30+
with:
31+
api-token: ${{ secrets.CODACY_API_TOKEN }}
32+
coverage-reports: coverage/lcov.info
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# 此操作会扫描您的拉取请求以查找依赖项更改,如果引入任何漏洞或无效许可证,则会引发错误
2+
3+
name: dependency review
4+
5+
on:
6+
pull_request:
7+
8+
jobs:
9+
dependency-review:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: actions/dependency-review-action@v4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# 如果 devPR 到主干,则会根据约定式提交创建一个 releasePR,是一个新版本合并请求
2+
# 如果 releasePR 到主干,则会触发新版本发布到 npm/github 等仓库
3+
4+
name: release please
5+
6+
on:
7+
push:
8+
branches:
9+
- v*.x
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: write
16+
pull-requests: write
17+
outputs:
18+
release_created: ${{ steps.release.outputs.release_created }}
19+
steps:
20+
- uses: googleapis/release-please-action@v4
21+
id: release
22+
with:
23+
token: ${{secrets.GITHUB_TOKEN}}
24+
25+
publish-npm:
26+
needs: release
27+
if: needs.release.outputs.release_created
28+
runs-on: ubuntu-latest
29+
permissions:
30+
id-token: write
31+
steps:
32+
- uses: actions/checkout@v4
33+
- uses: ./.github/actions/setup-npm
34+
- run: npm run build
35+
- uses: FrontEndDev-org/publish-node-package-action@v2
36+
with:
37+
target: npm
38+
token: ${{ secrets.NPM_TOKEN }}
39+
- uses: FrontEndDev-org/npm-mirror-sync-action@v1
40+
41+
publish-github:
42+
needs: release
43+
if: needs.release.outputs.release_created
44+
runs-on: ubuntu-latest
45+
permissions:
46+
packages: write
47+
steps:
48+
- uses: actions/checkout@v4
49+
- uses: ./.github/actions/setup-npm
50+
- run: npm run build
51+
- uses: FrontEndDev-org/[email protected]
52+
with:
53+
target: github
54+
token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)