138 lines
3.4 KiB
YAML
138 lines
3.4 KiB
YAML
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
|