-
Notifications
You must be signed in to change notification settings - Fork 19.6k
137 lines (113 loc) · 3.41 KB
/
source-release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: Source Release
on:
release:
types: [prereleased]
jobs:
materials:
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'apache' }}
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Prepare env
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Prepare release materials
run: |
npm i
node build/source-release/prepareReleaseMaterials.js \
--rcversion ${{env.RELEASE_VERSION}} \
--commit ${{github.sha}} \
--repo ${{github.repository}} \
--out tmp/materials
- name: Archive materials
uses: actions/upload-artifact@v4
with:
name: apache-echarts-${{env.RELEASE_VERSION}}-release-materials
path: |
tmp/materials/*
source:
runs-on: ubuntu-latest
needs: materials
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Prepare env
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
# Get RELEASE_NOTE.txt and pack it into zip.
- name: Download materials
uses: actions/download-artifact@v4
with:
name: apache-echarts-${{env.RELEASE_VERSION}}-release-materials
# TODO Check release version is RC
# Archive before run others to avoid packing unknown files.
- name: Archive source release
uses: actions/upload-artifact@v4
with:
name: apache-echarts-${{env.RELEASE_VERSION}}-src
path: |
index.d.ts
src/
extension-src/
ssr/client/src/
licenses/
theme/
build/
!build/source-release
package.json
package-lock.json
LICENSE
NOTICE
README.md
tsconfig.json
test/ut
test/types
test/check-build.html
RELEASE_NOTE.txt
validate-source:
runs-on: ubuntu-latest
needs: source
strategy:
matrix:
node-version: [18.x]
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Prepare env
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Download source release
uses: actions/download-artifact@v4
with:
name: apache-echarts-${{env.RELEASE_VERSION}}-src
path: tmp/echarts
- name: Build source release
run: |
npm ci
npm run release
npm run test
npm run test:dts
working-directory: tmp/echarts