diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 0df8e5136d..415c73c503 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [develop, main] types: [opened, synchronize, reopened] - + jobs: check: runs-on: ubuntu-latest @@ -14,7 +14,7 @@ jobs: run: | log_emails=$(git log --pretty=format:"%ae %ce" -1) && if [[ ${log_emails} =~ '@tencent.com' ]];then echo $log_emails && echo "邮箱校验非法" && exit 2;else echo "邮箱校验通过";fi shell: bash - + test: runs-on: ubuntu-latest steps: @@ -32,9 +32,22 @@ jobs: ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- + - run: npm install + - run: npm run lint - - run: npm run test + + - run: npm run test + + - name: Save pr id + run: echo ${{ github.event.number }} > pr-id.txt + + - name: Upload pr id + uses: actions/upload-artifact@v4 + with: + name: pr-id + path: pr-id.txt + retention-days: 1 modify-web: runs-on: ubuntu-latest @@ -48,7 +61,7 @@ jobs: id: web-changed with: path: style/web - + modify-mobile: runs-on: ubuntu-latest outputs: @@ -60,7 +73,7 @@ jobs: - uses: tj-actions/changed-files@v45 id: mobile-changed with: - path: style/mobile + path: style/mobile build-web: runs-on: ubuntu-latest @@ -105,7 +118,7 @@ jobs: name: _site path: target-repo/_site.zip retention-days: 5 - + build-mobile: runs-on: ubuntu-latest needs: modify-mobile @@ -148,4 +161,4 @@ jobs: with: name: _site path: target-repo/_site.zip - retention-days: 5 \ No newline at end of file + retention-days: 5 diff --git a/.github/workflows/tdesign-component-repositories-ci.yml b/.github/workflows/tdesign-component-repositories-ci.yml new file mode 100644 index 0000000000..247ace5622 --- /dev/null +++ b/.github/workflows/tdesign-component-repositories-ci.yml @@ -0,0 +1,229 @@ +name: TDesign Component Repositories CI Test + +on: + workflow_run: + workflows: + - MAIN_PULL_REQUEST + types: + - completed + +jobs: + pr-context: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + outputs: + pr_id: ${{ steps.pr.outputs.id }} + steps: + - name: Download pr id + uses: dawidd6/action-download-artifact@v8 + with: + workflow: ${{ github.event.workflow_run.workflow_id }} + run_id: ${{ github.event.workflow_run.id }} + name: pr-id + + - name: Set pr id + id : pr + run: echo "id=$(cat pr-id.txt)" >> $GITHUB_OUTPUT + + tdesign-vue: + if: github.event.workflow_run.conclusion == 'success' + needs: pr-context + runs-on: ubuntu-latest + steps: + - name: Checkout tdesign-vue + uses: actions/checkout@v4 + with: + repository: Tencent/tdesign-vue + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: src/_common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - run: npm install + - run: npm run lint + - run: npm run test + - run: npm run build + + tdesign-vue-next: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + needs: pr-context + steps: + - name: Checkout tdesign-vue-next + uses: actions/checkout@v4 + with: + repository: Tencent/tdesign-vue-next + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: packages/common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + - run: pnpm install --frozen-lockfile + - run: pnpm run lint + - run: pnpm run test + - run: pnpm run build + + tdesign-react: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + needs: pr-context + steps: + - name: Checkout tdesign-react + uses: actions/checkout@v4 + with: + repository: Tencent/tdesign-react + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: src/_common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - run: npm install + - run: npm run lint + - run: npm run test + - run: npm run build + + tdesign-web-components: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + needs: pr-context + steps: + - name: Checkout tdesign-web-components + uses: actions/checkout@v4 + with: + repository: TDesignOteam/tdesign-web-components + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: src/_common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - run: npm install + - run: npm run lint + - run: npm run test + - run: npm run build + + tdesign-mobile-vue: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + needs: pr-context + steps: + - name: Checkout tdesign-mobile-vue + uses: actions/checkout@v4 + with: + repository: Tencent/tdesign-mobile-vue + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: src/_common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - run: npm install + - run: npm run lint + - run: npm run test + - run: npm run build + + tdesign-mobile-react: + if: github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + needs: pr-context + steps: + - name: Checkout tdesign-mobile-react + uses: actions/checkout@v4 + with: + repository: Tencent/tdesign-mobile-react + + - name: Checkout tdesign-common + uses: actions/checkout@v4 + with: + path: src/_common + ref: refs/pull/${{ needs.pr-context.outputs.pr_id }}/head + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - run: npm install + - run: npm run lint + - run: npm run test + - run: npm run build + + pr-comment: + if: always() + needs: + - tdesign-vue + - tdesign-vue-next + - tdesign-react + - tdesign-web-components + - tdesign-mobile-vue + - tdesign-mobile-react + runs-on: ubuntu-latest + steps: + - name: jobs report + id: report + uses: actions/github-script@v7 + with: + script: | + const { data: { jobs } } = await github.rest.actions.listJobsForWorkflowRun({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.runId, + per_page: 100 + }) + + const tdesign = jobs.filter(job => job.name.startsWith('tdesign-')) + + const run_url = `${context.serverUrl}//${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` + + const comment =` + # TDesign Component Repositories CI Test [Open](${run_url}) + | Component | Status | Job | + | --------- | :----: | :--: | + ${tdesign.map(job => { + const status = job.conclusion === 'success' ? '✅' : '❌'; + return `| ${job.name} | ${status} | [Open](${job.html_url}) |` + console.log(job.name, process.env[job.name]); + }).join("\n")} + + + ` + + core.setOutput('comment', comment); + + - name: comment + uses: actions-cool/maintain-one-comment@v3 + with: + token: ${{ secrets.TDESIGN_BOT_TOKEN }} + number: ${{needs.pr-context.outputs.pr_id}} + body: ${{ steps.report.outputs.comment }} + body-include: '' \ No newline at end of file