Skip to content

Commit 9c0258a

Browse files
committed
Merge branch 'main' into renovate/fast-xml-parser-5.x
2 parents ff368c5 + 8d5dab3 commit 9c0258a

File tree

204 files changed

+5450
-1657
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+5450
-1657
lines changed

.dockerignore

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,91 @@
1-
# Build artifacts
1+
# git
2+
.git
3+
4+
# build artifacts
25
bin/
3-
!bin/roo-code-latest.vsix
46
dist/
57
**/dist/
68
out/
79
**/out/
10+
src/webview-ui/
811

9-
# Dependencies
12+
# dependencies
1013
node_modules/
1114
**/node_modules/
1215

13-
# Test and development files
16+
# testing
1417
coverage/
1518
**/.vscode-test/
19+
**/mock/
1620

21+
# devtools
1722
knip.json
1823
.husky/
24+
25+
# monorepo
26+
.turbo/
27+
**/.turbo/
28+
29+
# next.js
30+
**/.next/
31+
.vercel
32+
33+
# Ignore common development files
34+
node_modules
35+
.git
36+
.gitignore
37+
.dockerignore
38+
.env*
39+
.vscode
40+
.idea
41+
42+
# Ignore build artifacts
43+
dist
44+
build
45+
*.log
46+
*.tmp
47+
.cache
48+
coverage
49+
50+
# Ignore OS files
51+
.DS_Store
52+
Thumbs.db
53+
54+
# Ignore test files
55+
__tests__
56+
*.test.js
57+
*.spec.js
58+
*.test.ts
59+
*.spec.ts
60+
61+
# Ignore development config files
62+
.eslintrc*
63+
.prettierrc*
64+
jest.config*
65+
66+
# Ignore most directories except what we need for the build
67+
apps/
68+
evals/
69+
webview-ui/node_modules
70+
src/node_modules
71+
72+
# Keep essential files for the build
73+
!README.md
74+
!CHANGELOG.md
75+
!package.json
76+
!pnpm-lock.yaml
77+
!pnpm-workspace.yaml
78+
!scripts/bootstrap.mjs
79+
!apps/web-evals/
80+
!src/
81+
!webview-ui/
82+
!packages/evals/.docker/entrypoints/runner.sh
83+
!packages/build/
84+
!packages/cloud/
85+
!packages/config-eslint/
86+
!packages/config-typescript/
87+
!packages/evals/
88+
!packages/ipc/
89+
!packages/telemetry/
90+
!packages/types/
91+
!locales/

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# These owners will be the default owners for everything in the repo
2-
* @mrubens @cte
2+
* @mrubens @cte @jr
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: 'Slack Notification'
2+
description: 'Send Slack notification for workflow failures'
3+
inputs:
4+
webhook-url:
5+
description: 'Slack webhook URL'
6+
required: true
7+
channel:
8+
description: 'Slack channel to notify'
9+
required: true
10+
workflow-name:
11+
description: 'Name of the workflow'
12+
required: true
13+
failed-jobs:
14+
description: 'JSON object containing job results'
15+
required: true
16+
17+
runs:
18+
using: 'composite'
19+
steps:
20+
- name: Parse failed jobs
21+
id: parse-jobs
22+
shell: bash
23+
run: |
24+
echo "Parsing job results..."
25+
failed_list=""
26+
27+
echo '${{ inputs.failed-jobs }}' | jq -r 'to_entries[] | select(.value.result == "failure") | .key' | while read job; do
28+
case $job in
29+
"check-translations") failed_list="${failed_list}❌ Translation check\n" ;;
30+
"knip") failed_list="${failed_list}❌ Knip analysis\n" ;;
31+
"compile") failed_list="${failed_list}❌ Compile & lint\n" ;;
32+
"unit-test") failed_list="${failed_list}❌ Unit tests\n" ;;
33+
"integration-test") failed_list="${failed_list}❌ Integration tests\n" ;;
34+
esac
35+
done
36+
37+
echo "failed_jobs<<EOF" >> $GITHUB_OUTPUT
38+
echo -e "$failed_list" | sed '/^$/d' >> $GITHUB_OUTPUT
39+
echo "EOF" >> $GITHUB_OUTPUT
40+
41+
- name: Send Slack notification
42+
uses: 8398a7/action-slack@v3
43+
with:
44+
status: failure
45+
channel: ${{ inputs.channel }}
46+
text: |
47+
🚨 ${{ inputs.workflow-name }} workflow failed on main branch!
48+
49+
Repository: ${{ github.repository }}
50+
Commit: ${{ github.sha }}
51+
Author: ${{ github.actor }}
52+
53+
Failed jobs:
54+
${{ steps.parse-jobs.outputs.failed_jobs }}
55+
56+
View details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
57+
env:
58+
SLACK_WEBHOOK_URL: ${{ inputs.webhook-url }}

.github/workflows/code-qa.yml

Lines changed: 97 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,107 @@
11
name: Code QA Roo Code
22

33
on:
4-
workflow_dispatch:
5-
push:
6-
branches: [main]
7-
pull_request:
8-
types: [opened, reopened, ready_for_review, synchronize]
9-
branches: [main]
4+
workflow_dispatch:
5+
push:
6+
branches: [main]
7+
pull_request:
8+
types: [opened, reopened, ready_for_review, synchronize]
9+
branches: [main]
1010

1111
jobs:
12-
check-translations:
13-
runs-on: ubuntu-latest
14-
steps:
15-
- name: Checkout code
16-
uses: actions/checkout@v4
17-
- name: Setup Node.js and pnpm
18-
uses: ./.github/actions/setup-node-pnpm
19-
- name: Verify all translations are complete
20-
run: node scripts/find-missing-translations.js
12+
check-translations:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
- name: Setup Node.js and pnpm
18+
uses: ./.github/actions/setup-node-pnpm
19+
- name: Verify all translations are complete
20+
run: node scripts/find-missing-translations.js
2121

22-
knip:
23-
runs-on: ubuntu-latest
24-
steps:
25-
- name: Checkout code
26-
uses: actions/checkout@v4
27-
- name: Setup Node.js and pnpm
28-
uses: ./.github/actions/setup-node-pnpm
29-
- name: Run knip checks
30-
run: pnpm knip
22+
knip:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout code
26+
uses: actions/checkout@v4
27+
- name: Setup Node.js and pnpm
28+
uses: ./.github/actions/setup-node-pnpm
29+
- name: Run knip checks
30+
run: pnpm knip
3131

32-
compile:
33-
runs-on: ubuntu-latest
34-
steps:
35-
- name: Checkout code
36-
uses: actions/checkout@v4
37-
- name: Setup Node.js and pnpm
38-
uses: ./.github/actions/setup-node-pnpm
39-
- name: Lint
40-
run: pnpm lint
41-
- name: Check types
42-
run: pnpm check-types
32+
compile:
33+
runs-on: ubuntu-latest
34+
steps:
35+
- name: Checkout code
36+
uses: actions/checkout@v4
37+
- name: Setup Node.js and pnpm
38+
uses: ./.github/actions/setup-node-pnpm
39+
- name: Lint
40+
run: pnpm lint
41+
- name: Check types
42+
run: pnpm check-types
4343

44-
platform-unit-test:
45-
runs-on: ${{ matrix.os }}
46-
strategy:
47-
matrix:
48-
os: [ubuntu-latest, windows-latest]
49-
steps:
50-
- name: Checkout code
51-
uses: actions/checkout@v4
52-
- name: Setup Node.js and pnpm
53-
uses: ./.github/actions/setup-node-pnpm
54-
- name: Run unit tests
55-
run: pnpm test
44+
unit-test:
45+
name: platform-unit-test (${{ matrix.name }})
46+
runs-on: ${{ matrix.os }}
47+
strategy:
48+
matrix:
49+
include:
50+
- os: ubuntu-latest
51+
name: ubuntu-latest
52+
- os: windows-latest
53+
name: windows-latest
54+
steps:
55+
- name: Checkout code
56+
uses: actions/checkout@v4
57+
- name: Setup Node.js and pnpm
58+
uses: ./.github/actions/setup-node-pnpm
59+
- name: Run unit tests
60+
run: pnpm test
5661

57-
check-openrouter-api-key:
58-
runs-on: ubuntu-latest
59-
outputs:
60-
exists: ${{ steps.openrouter-api-key-check.outputs.defined }}
61-
steps:
62-
- name: Check if OpenRouter API key exists
63-
id: openrouter-api-key-check
64-
shell: bash
65-
run: |
66-
if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then
67-
echo "defined=true" >> $GITHUB_OUTPUT;
68-
else
69-
echo "defined=false" >> $GITHUB_OUTPUT;
70-
fi
62+
check-openrouter-api-key:
63+
runs-on: ubuntu-latest
64+
outputs:
65+
exists: ${{ steps.openrouter-api-key-check.outputs.defined }}
66+
steps:
67+
- name: Check if OpenRouter API key exists
68+
id: openrouter-api-key-check
69+
shell: bash
70+
run: |
71+
if [ "${{ secrets.OPENROUTER_API_KEY }}" != '' ]; then
72+
echo "defined=true" >> $GITHUB_OUTPUT;
73+
else
74+
echo "defined=false" >> $GITHUB_OUTPUT;
75+
fi
7176
72-
integration-test:
73-
runs-on: ubuntu-latest
74-
needs: [check-openrouter-api-key]
75-
if: needs.check-openrouter-api-key.outputs.exists == 'true'
76-
steps:
77-
- name: Checkout code
78-
uses: actions/checkout@v4
79-
- name: Setup Node.js and pnpm
80-
uses: ./.github/actions/setup-node-pnpm
81-
- name: Create .env.local file
82-
working-directory: apps/vscode-e2e
83-
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
84-
- name: Run integration tests
85-
working-directory: apps/vscode-e2e
86-
run: xvfb-run -a pnpm test:ci
77+
integration-test:
78+
runs-on: ubuntu-latest
79+
needs: [check-openrouter-api-key]
80+
if: needs.check-openrouter-api-key.outputs.exists == 'true'
81+
steps:
82+
- name: Checkout code
83+
uses: actions/checkout@v4
84+
- name: Setup Node.js and pnpm
85+
uses: ./.github/actions/setup-node-pnpm
86+
- name: Create .env.local file
87+
working-directory: apps/vscode-e2e
88+
run: echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" > .env.local
89+
- name: Run integration tests
90+
working-directory: apps/vscode-e2e
91+
run: xvfb-run -a pnpm test:ci
92+
93+
notify-slack-on-failure:
94+
runs-on: ubuntu-latest
95+
needs: [check-translations, knip, compile, unit-test, integration-test]
96+
if: ${{ always() && github.event_name == 'push' && github.ref == 'refs/heads/main' && contains(needs.*.result, 'failure') }}
97+
steps:
98+
- name: Checkout code
99+
uses: actions/checkout@v4
100+
101+
- name: Send Slack notification on failure
102+
uses: ./.github/actions/slack-notify
103+
with:
104+
webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
105+
channel: "#ci"
106+
workflow-name: "Code QA"
107+
failed-jobs: ${{ toJSON(needs) }}

0 commit comments

Comments
 (0)