Skip to content

Commit

Permalink
ci: add TDesign Component Repositories CI Test (#2054)
Browse files Browse the repository at this point in the history
* ci:  add TEST_COMPONENT

* chore: fix ci

* chore: fix ci

* chore: fix ci

* chore: ci

* chore: ci

* chore: ci

* chore: ci

* chore: ci

* chore: ci

* chore: add .node-version

* ci(MAIN_PULL_REQUEST): save pr id

* chore: ci

* ci: node-version

* chore: ci

* chore: ci

* chore: ci

* chore: update name

* chore: update name
  • Loading branch information
liweijie0812 authored Feb 8, 2025
1 parent b2e4e1d commit b7935cb
Show file tree
Hide file tree
Showing 2 changed files with 249 additions and 7 deletions.
27 changes: 20 additions & 7 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
branches: [develop, main]
types: [opened, synchronize, reopened]

jobs:
check:
runs-on: ubuntu-latest
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -48,7 +61,7 @@ jobs:
id: web-changed
with:
path: style/web

modify-mobile:
runs-on: ubuntu-latest
outputs:
Expand All @@ -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
Expand Down Expand Up @@ -105,7 +118,7 @@ jobs:
name: _site
path: target-repo/_site.zip
retention-days: 5

build-mobile:
runs-on: ubuntu-latest
needs: modify-mobile
Expand Down Expand Up @@ -148,4 +161,4 @@ jobs:
with:
name: _site
path: target-repo/_site.zip
retention-days: 5
retention-days: 5
229 changes: 229 additions & 0 deletions .github/workflows/tdesign-component-repositories-ci.yml
Original file line number Diff line number Diff line change
@@ -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")}
<!-- TDesign Component Repositories CI Test -->
`
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: '<!-- TDesign Component Repositories CI Test -->'

0 comments on commit b7935cb

Please sign in to comment.