chore(deps): update rspress to ^1.39.1 (#4265) #408
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Ecosystem CI | |
on: | |
push: | |
branches: [main] | |
workflow_dispatch: | |
inputs: | |
branch: | |
description: 'The branch of the Ecosystem CI run' | |
required: true | |
default: 'main' | |
jobs: | |
ecosystem_ci_notify: | |
name: Run Ecosystem CI With Notify | |
runs-on: ubuntu-latest | |
if: github.repository == 'web-infra-dev/rsbuild' && github.event_name != 'workflow_dispatch' && !startsWith(github.event.head_commit.message, 'docs') | |
steps: | |
- name: Run Ecosystem CI with notify | |
id: eco_ci | |
continue-on-error: true | |
uses: convictional/trigger-workflow-and-wait@v1.6.5 | |
with: | |
owner: "rspack-contrib" | |
repo: "rsbuild-ecosystem-ci" | |
workflow_file_name: "ecosystem-ci-from-commit.yml" | |
github_token: ${{ secrets.REPO_RSBUILD_ECO_CI_GITHUB_TOKEN }} | |
ref: "main" | |
client_payload: '{"commitSHA":"${{ github.sha }}","updateComment":true,"repo":"web-infra-dev/rsbuild","suite":"-","suiteRefType":"precoded","suiteRef":"precoded"}' | |
- if: steps.eco_ci.outcome == 'failure' | |
uses: actions/checkout@v4.2.2 | |
- if: steps.eco_ci.outcome == 'failure' | |
uses: actions/setup-node@v4.1.0 | |
with: | |
node-version: 20 | |
- name: Send Failure Notification | |
if: steps.eco_ci.outcome == 'failure' | |
shell: bash | |
run: ./scripts/alert/lark.js | |
env: | |
TITLE: Rsbuild Ecosystem CI failed | |
DESCRIPTION: | | |
commitID: [${{github.sha}}](${{github.server_url}}/${{github.repository}}/commit/${{github.sha}}) | |
URL: ${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}} | |
LARK_WEBHOOK_URL: ${{ secrets.LARK_WEBHOOK_URL }} | |
ecosystem_ci: | |
name: Run Ecosystem CI | |
runs-on: ubuntu-latest | |
if: github.repository == 'web-infra-dev/rsbuild' && github.event_name == 'workflow_dispatch' | |
steps: | |
- id: get-pr-number | |
uses: actions/github-script@v7 | |
name: Get PR Number | |
with: | |
script: | | |
const { data: prs } = await github.rest.pulls.list({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}) | |
const pr = prs.find(pr => pr.head.ref === context.payload.inputs.branch); | |
if(pr) { | |
console.log(`Get PR info: ${pr.url}`) | |
return { | |
num: pr.number, | |
branchName: pr.head.ref, | |
repo: pr.head.repo.full_name | |
} | |
} else { | |
console.log(`can't find PR for branch: ${context.payload.inputs.branch}`) | |
} | |
- id: create-comment | |
name: Create Comment | |
uses: actions/github-script@v6 | |
if: steps.get-pr-number.outputs.result | |
with: | |
result-encoding: string | |
script: | | |
const url = `${context.serverUrl}//${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` | |
const urlLink = `[Open](${url})` | |
const prData = ${{ steps.get-pr-number.outputs.result }} | |
const { data: comment } = await github.rest.issues.createComment({ | |
issue_number: prData.num, | |
owner: 'web-infra-dev', | |
repo: 'rsbuild', | |
body: `⏳ Triggered ecosystem CI: ${urlLink}` | |
}) | |
return comment.id | |
- name: Run Ecosystem CI | |
id: eco_ci | |
uses: convictional/trigger-workflow-and-wait@v1.6.5 | |
continue-on-error: true | |
with: | |
owner: "rspack-contrib" | |
repo: "rsbuild-ecosystem-ci" | |
workflow_file_name: "ecosystem-ci-selected.yml" | |
github_token: ${{ secrets.REPO_RSBUILD_ECO_CI_GITHUB_TOKEN }} | |
ref: "main" | |
client_payload: '{"ref":"${{ github.event.inputs.branch }}","repo":"web-infra-dev/rsbuild","suite":"-","suiteRefType":"precoded","suiteRef":"precoded"}' | |
- id: get-ci-result | |
uses: actions/github-script@v7 | |
name: Get CI Result | |
env: | |
CI_OUTPUT: ${{ toJson(steps.eco_ci.outputs) }} | |
with: | |
script: | | |
const owner = "rspack-contrib" | |
const repo = "rsbuild-ecosystem-ci" | |
const runId = JSON.parse(process.env.CI_OUTPUT).workflow_id | |
const { data: { jobs } = {} } = await github.rest.actions.listJobsForWorkflowRun({ | |
owner, | |
repo, | |
run_id: runId, | |
}) | |
if (!jobs) { | |
return 'cannot find CI result' | |
} | |
let result = jobs | |
.filter(job => job.name.startsWith('execute-all ')) | |
.map(job => { | |
const suite = job.name.replace(/^execute-all \(([^)]+)\)$/, "$1") | |
return { suite, conclusion: job.conclusion, link: job.html_url } | |
}) | |
const url = `https://github.com/${owner}/${repo}/actions/runs/${runId}` | |
const urlLink = `[Open](${url})` | |
const conclusionEmoji = { | |
success: ":white_check_mark:", | |
failure: ":x:", | |
cancelled: ":stop_button:" | |
} | |
const body = ` | |
📝 Ran ecosystem CI: ${urlLink} | |
| suite | result | | |
|-------|--------| | |
${result.map(r => `| [${r.suite}](${r.link}) | ${conclusionEmoji[r.conclusion]} ${r.conclusion} |`).join("\n")} | |
` | |
console.log(body); | |
return body; | |
- id: update-comment | |
uses: actions/github-script@v7 | |
if: steps.get-pr-number.outputs.result | |
name: Update Comment | |
with: | |
script: | | |
await github.rest.issues.updateComment({ | |
owner: 'web-infra-dev', | |
repo: 'rsbuild', | |
comment_id: ${{ steps.create-comment.outputs.result }}, | |
body: ${{ steps.get-ci-result.outputs.result }} | |
}) | |