Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .agents/skills/eco-ci-selfcheck/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,14 +228,14 @@ The table cell can't carry a real list. Markdown table cells flatten newlines, a
Table column order and stack order:

```markdown
| Stack | Status | Run | Created | Notes |
| -------- | -------------- | --------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Stack | Status | Run | Created | Notes |
| -------- | -------------- | --------------------------------------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------- |
| rsbuild | ✅ OK | [26557329578](https://github.com/rstackjs/rstack-ecosystem-ci/actions/runs/26557329578) | 2026-05-28 05:50 UTC | modernjs prepare lifecycle crashed: rsbuild#7773 (async templateParameters) ↔ modernjs hook not awaited — see details |
| rsdoctor | ✅ OK | [26018807250](…) | 2026-05-18 07:07 UTC | rsbuild suite: 4 vitest tests failed — see details |
| rslib | ✅ OK | [26382662636](…) | 2026-05-25 04:07 UTC | all suites passed |
| rspack | 🛑 ECO-CI SELF | [26384019463](…) | 2026-05-25 04:57 UTC | 1 framework failure (`_selftest`); 6 sibling jobs surfaced real upstream↔consumer breakage — see details |
| rspress | ✅ OK | [26381920989](…) | 2026-05-25 03:40 UTC | all suites passed |
| rstest | ✅ OK | [26382680571](…) | 2026-05-25 04:08 UTC | all suites passed |
| rsdoctor | ✅ OK | [26018807250](…) | 2026-05-18 07:07 UTC | rsbuild suite: 4 vitest tests failed — see details |
| rslib | ✅ OK | [26382662636](…) | 2026-05-25 04:07 UTC | all suites passed |
| rspack | 🛑 ECO-CI SELF | [26384019463](…) | 2026-05-25 04:57 UTC | 1 framework failure (`_selftest`); 6 sibling jobs surfaced real upstream↔consumer breakage — see details |
| rspress | ✅ OK | [26381920989](…) | 2026-05-25 03:40 UTC | all suites passed |
| rstest | ✅ OK | [26382680571](…) | 2026-05-25 04:08 UTC | all suites passed |
```

Followed by:
Expand Down Expand Up @@ -275,7 +275,7 @@ There is no `✅ OK (test failed)` sub-state any more. Tests-passed-but-vitest-r
**`## Details` section** — the actual evidence chain, written as proper Markdown lists where renderers naturally break each item onto its own line.

- One `### <stack> — <run link>` heading per non-pure-passing row in the table.
- Underneath each heading, a real Markdown ordered list. Prefix each item with its per-job verdict so the reader can sort framework-bugs from ecosystem-signals at a glance: `1. **🛑 \`<job-name>\`** — <one-line summary of the failing command and verbatim error>.<newline-and-indent>Root cause: <evidence with file path + line + SHA / version cited inline>.` or `1. **✅ \`<job-name>\` — real ecosystem signal** — …`.
- Underneath each heading, a real Markdown ordered list. Prefix each item with its per-job verdict so the reader can sort framework-bugs from ecosystem-signals at a glance: `1. **🛑 \`<job-name>\`** — <one-line summary of the failing command and verbatim error>.<newline-and-indent>Root cause: <evidence with file path + line + SHA / version cited inline>.`or`1. **✅ \`<job-name>\` — real ecosystem signal\*\* — …`.
- One list item per _distinct_ root cause. Mixed runs put the 🛑 framework-failure items first and the ✅ ecosystem-signal items after, so the user sees "what we have to fix in this repo" before "what we have to ping the owners about."
- Quote ≤80 chars of any verbatim error per item. Never paste log lines longer than one screen line. Always cite the file path + line + SHA / package version that backs the root-cause claim so the user can re-verify in two clicks. For every non-vitest ecosystem signal, also cite the first-bad upstream commit from Step 5 sub-step 6.
- The list items are real Markdown — they MUST start with `1.` `2.` `3.` … on their own line, NOT be jammed onto one line separated by HTML.
Expand Down
54 changes: 0 additions & 54 deletions .github/actions/ecosystem_ci_per_commit/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,24 +56,6 @@ runs:
ref: 'main'
client_payload: ${{ inputs.client-payload }}

- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 1
# checkout@v6 persists credentials via includeIf gitdir, which leaks
# GITHUB_TOKEN auth into the worktree later created by
# JamesIves/github-pages-deploy-action and overrides the PAT in `token`,
# causing 403 on cross-repo push.
# See https://github.com/JamesIves/github-pages-deploy-action/issues/1928
persist-credentials: false

- name: Setup Node.js
if: steps.eco_ci.outcome == 'failure'
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false

- name: Get CI Result
id: eco-ci-result
uses: rstackjs/rstack-ecosystem-ci/.github/actions/ecosystem-ci-result@3cbb84659edaf3713e10831715d39de0d5c02df7 # main
Expand All @@ -96,39 +78,3 @@ runs:
repo: '${{ inputs.ecosystem-repo }}',
body: process.env.SUMMARY
})

- name: Checkout ecosystem-ci repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: rstackjs/rstack-ecosystem-ci
ref: main
path: ecosystem-ci-repo
fetch-depth: 1
persist-credentials: false

- name: Update Ecosystem History
id: update-history
shell: bash
env:
CLIENT_PAYLOAD: ${{ inputs.client-payload }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
WORKFLOW_FILE: ${{ inputs.workflow-file }}
HISTORY_REPOSITORY: rstackjs/rstack-ecosystem-ci
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ inputs.github-token }}
run: |
node "$GITHUB_WORKSPACE/ecosystem-ci-repo/scripts/update-ecosystem-history.mjs"

- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ inputs.github-token }}
repository-name: rstackjs/rstack-ecosystem-ci
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
47 changes: 47 additions & 0 deletions .github/workflows/rsbuild-ecosystem-ci-from-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,50 @@ jobs:
run-suites
--stack rsbuild
${{ matrix.suite }}

update-history:
name: Update Ecosystem History
needs: [execute-all]
if: ${{ always() && inputs.suite == '-' }}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false
- name: Get CI Result
id: eco-ci-result
uses: ./.github/actions/ecosystem-ci-result
with:
heading: rsbuild
workflow-output: '{"workflow_id": "${{ github.run_id }}"}'
- name: Update Ecosystem History
id: update-history
env:
STACK: rsbuild
SOURCE_REPO: ${{ inputs.repo }}
SOURCE_COMMIT: ${{ inputs.commitSHA }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
HISTORY_REPOSITORY: ${{ github.repository }}
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-ecosystem-history.mjs
- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ secrets.GITHUB_TOKEN }}
repository-name: ${{ github.repository }}
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
47 changes: 47 additions & 0 deletions .github/workflows/rsdoctor-ecosystem-ci-from-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,50 @@ jobs:
run-suites
--stack rsdoctor
${{ matrix.suite }}

update-history:
name: Update Ecosystem History
needs: [execute-all]
if: ${{ always() && inputs.suite == '-' }}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false
- name: Get CI Result
id: eco-ci-result
uses: ./.github/actions/ecosystem-ci-result
with:
heading: rsdoctor
workflow-output: '{"workflow_id": "${{ github.run_id }}"}'
- name: Update Ecosystem History
id: update-history
env:
STACK: rsdoctor
SOURCE_REPO: ${{ inputs.repo }}
SOURCE_COMMIT: ${{ inputs.commitSHA }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
HISTORY_REPOSITORY: ${{ github.repository }}
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-ecosystem-history.mjs
- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ secrets.GITHUB_TOKEN }}
repository-name: ${{ github.repository }}
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
47 changes: 47 additions & 0 deletions .github/workflows/rslib-ecosystem-ci-from-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,50 @@ jobs:
run-suites
--stack rslib
${{ matrix.suite }}

update-history:
name: Update Ecosystem History
needs: [execute-all]
if: ${{ always() && inputs.suite == '-' }}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false
- name: Get CI Result
id: eco-ci-result
uses: ./.github/actions/ecosystem-ci-result
with:
heading: rslib
workflow-output: '{"workflow_id": "${{ github.run_id }}"}'
- name: Update Ecosystem History
id: update-history
env:
STACK: rslib
SOURCE_REPO: ${{ inputs.repo }}
SOURCE_COMMIT: ${{ inputs.commitSHA }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
HISTORY_REPOSITORY: ${{ github.repository }}
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-ecosystem-history.mjs
- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ secrets.GITHUB_TOKEN }}
repository-name: ${{ github.repository }}
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
47 changes: 47 additions & 0 deletions .github/workflows/rspack-ecosystem-ci-from-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -222,3 +222,50 @@ jobs:
--stack rspack \
"${suite_ref_args[@]}" \
${{ matrix.suite }}

update-history:
name: Update Ecosystem History
needs: [execute-all]
if: ${{ always() && inputs.suite == '-' }}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false
- name: Get CI Result
id: eco-ci-result
uses: ./.github/actions/ecosystem-ci-result
with:
heading: rspack
workflow-output: '{"workflow_id": "${{ github.run_id }}"}'
- name: Update Ecosystem History
id: update-history
env:
STACK: rspack
SOURCE_REPO: ${{ inputs.repo }}
SOURCE_COMMIT: ${{ inputs.commitSHA }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
HISTORY_REPOSITORY: ${{ github.repository }}
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-ecosystem-history.mjs
- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ secrets.GITHUB_TOKEN }}
repository-name: ${{ github.repository }}
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
47 changes: 47 additions & 0 deletions .github/workflows/rspress-ecosystem-ci-from-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,50 @@ jobs:
run-suites
--stack rspress
${{ matrix.suite }}

update-history:
name: Update Ecosystem History
needs: [execute-all]
if: ${{ always() && inputs.suite == '-' }}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22.22.3
package-manager-cache: false
- name: Get CI Result
id: eco-ci-result
uses: ./.github/actions/ecosystem-ci-result
with:
heading: rspress
workflow-output: '{"workflow_id": "${{ github.run_id }}"}'
- name: Update Ecosystem History
id: update-history
env:
STACK: rspress
SOURCE_REPO: ${{ inputs.repo }}
SOURCE_COMMIT: ${{ inputs.commitSHA }}
SUMMARY_MARKDOWN: ${{ steps.eco-ci-result.outputs.summary }}
RESULTS_JSON: ${{ steps.eco-ci-result.outputs.results }}
HISTORY_REPOSITORY: ${{ github.repository }}
OUTPUT_DIR: data-artifacts
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/update-ecosystem-history.mjs
- name: Publish History
if: ${{ steps.update-history.outcome == 'success' }}
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4
with:
branch: data
folder: data-artifacts
clean: false
target-folder: .
token: ${{ secrets.GITHUB_TOKEN }}
repository-name: ${{ github.repository }}
git-config-name: github-actions[bot]
git-config-email: github-actions[bot]@users.noreply.github.com
Loading
Loading