diff --git a/.github/workflows/source-release-debug.yml b/.github/workflows/source-release-debug.yml new file mode 100644 index 0000000000..1a0fa724e6 --- /dev/null +++ b/.github/workflows/source-release-debug.yml @@ -0,0 +1,137 @@ +name: Source Release Debug + +on: + workflow_dispatch: {} + +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@v3 + 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@v3 + 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@v3 + 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@v3 + 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@v3 + with: + name: apache-echarts-${{env.RELEASE_VERSION}}-src + path: tmp/echarts + + - name: Build source release + run: | + npm ci + npx jest --version + npm run release + npm run test + npm run test:dts + working-directory: tmp/echarts