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@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 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@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 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/ 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@v3 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 npm run release npm run test npm run test:dts working-directory: tmp/echarts