Skip to content

Commit 5ad9267

Browse files
committed
[code-infra] Migrate circle ci to use code-infra orb
1 parent b721ca0 commit 5ad9267

File tree

3 files changed

+36
-139
lines changed

3 files changed

+36
-139
lines changed

.circleci/config.yml

Lines changed: 28 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
version: 2.1
22

3+
orbs:
4+
code-infra: https://raw.githubusercontent.com/mui/mui-public/refs/heads/ci-orb/.circleci/orbs/code-infra.yaml
5+
36
parameters:
47
browserstack-force:
58
description: Whether to force browserstack usage. We have limited resources on browserstack so the pipeline might decide to skip browserstack if this parameter isn't set to true.
@@ -65,83 +68,22 @@ default-context: &default-context
6568
context:
6669
- org-global
6770

68-
commands:
69-
install_js:
70-
parameters:
71-
playwright:
72-
description: If playwright should be installed.
73-
type: boolean
74-
default: false
75-
react-version:
76-
description: The version of React to use.
77-
type: string
78-
default: << pipeline.parameters.react-version >>
79-
material-ui-version:
80-
description: The version of material-ui to use.
81-
type: string
82-
default: << pipeline.parameters.material-ui-version >>
83-
steps:
84-
- when:
85-
condition: << parameters.playwright >>
86-
steps:
87-
- run:
88-
name: Install pnpm package manager
89-
command: corepack enable
90-
- when:
91-
condition:
92-
not: << parameters.playwright >>
93-
steps:
94-
- run:
95-
name: Install pnpm package manager
96-
# See https://stackoverflow.com/a/73411601
97-
command: corepack enable --install-directory ~/bin
98-
- run:
99-
name: View install environment
100-
command: |
101-
node --version
102-
pnpm --version
103-
104-
- run:
105-
name: Install js dependencies
106-
command: |
107-
args=""
108-
if [ -n "$REACT_VERSION" ] && [ "$REACT_VERSION" != "stable" ]; then
109-
args="react@$REACT_VERSION"
110-
fi
111-
if [ -n "$MATERIAL_UI_VERSION" ] && [ "$MATERIAL_UI_VERSION" != "stable" ]; then
112-
args="$args @mui/material@$MATERIAL_UI_VERSION"
113-
fi
114-
if [ -n "$args" ]; then
115-
pnpm dlx @mui/internal-code-infra@canary set-version-overrides --pkg $args
116-
else
117-
pnpm install
118-
fi
119-
12071
jobs:
12172
checkout:
12273
<<: *default-job
12374
steps:
12475
- checkout
125-
- install_js
76+
- code-infra/install-deps
12677
- run:
12778
name: Should not have any git not staged
12879
command: git add -A && git diff --exit-code --staged
129-
- run:
130-
name: '`pnpm dedupe` was run?'
131-
command: |
132-
# #target-branch-reference
133-
if [[ $(git diff --name-status master | grep pnpm-lock) == "" ]];
134-
then
135-
echo "No changes to dependencies detected. Skipping..."
136-
else
137-
pnpm dedupe --check
138-
fi
80+
13981
test_unit:
14082
<<: *default-job
14183
steps:
14284
- checkout
143-
- install_js:
144-
react-version: << parameters.react-version >>
85+
- code-infra/install-deps:
86+
package-overrides: react@<< parameters.react-version >>
14587
- run:
14688
name: Test JSDOM
14789
command: pnpm test:unit:jsdom
@@ -154,9 +96,9 @@ jobs:
15496
resource_class: large
15597
steps:
15698
- checkout
157-
- install_js:
158-
playwright: true
159-
react-version: << parameters.react-version >>
99+
- code-infra/install-deps:
100+
package-overrides: react@<< parameters.react-version >>
101+
browsers: true
160102
- when:
161103
condition:
162104
not:
@@ -180,50 +122,22 @@ jobs:
180122
PLAYWRIGHT_SERVER_WS: 'ws://127.0.0.1:9050/mui-browser'
181123
command: |
182124
node ./scripts/playwrightLaunchServer.mjs & pnpm test:unit:browser --coverage
183-
- run:
184-
name: Check coverage generated
185-
command: |
186-
if ! [[ -s coverage/lcov.info ]]
187-
then
188-
exit 1
189-
fi
190-
- run:
191-
name: Coverage
192-
command: |
193-
curl -Os https://uploader.codecov.io/latest/linux/codecov
194-
chmod +x codecov
195-
./codecov -t ${CODECOV_TOKEN} -Z -F "$REACT_VERSION-browser"
125+
- code-infra/upload-coverage:
126+
key: browser
196127
- store_test_results:
197128
path: test-results
198129
test_lint:
199130
<<: *default-job
200131
steps:
201132
- checkout
202-
- install_js
203-
- run:
204-
name: ESLint
205-
command: pnpm eslint:ci
206-
- run:
207-
name: Stylelint
208-
command: pnpm stylelint
209-
- run:
210-
name: Lint Markdown
211-
command: pnpm markdownlint
133+
- code-infra/install-deps
134+
- code-infra/run-linters
212135
test_static:
213136
<<: *default-job
214137
steps:
215138
- checkout
216-
- install_js
217-
- run:
218-
name: '`pnpm prettier` changes committed?'
219-
command: |
220-
# #target-branch-reference
221-
if [[ $(git diff --name-status master | grep pnpm-lock) == "" ]];
222-
then
223-
pnpm prettier --check
224-
else
225-
pnpm exec prettier --check . --ignore-path .lintignore
226-
fi
139+
- code-infra/install-deps
140+
- code-infra/check-static-changes
227141
- run:
228142
name: Generate PropTypes
229143
command: pnpm proptypes
@@ -281,7 +195,7 @@ jobs:
281195
<<: *default-job
282196
steps:
283197
- checkout
284-
- install_js
198+
- code-infra/install-deps
285199
- run:
286200
name: Transpile TypeScript demos
287201
command: pnpm docs:typescript:formatted --disable-cache
@@ -299,9 +213,9 @@ jobs:
299213
- image: mcr.microsoft.com/playwright:v1.55.1-noble
300214
steps:
301215
- checkout
302-
- install_js:
303-
playwright: true
304-
react-version: << parameters.react-version >>
216+
- code-infra/install-deps:
217+
browsers: true
218+
package-overrides: react@<< parameters.react-version >>
305219
- run:
306220
name: Run e2e tests
307221
command: pnpm test:e2e
@@ -311,8 +225,8 @@ jobs:
311225
- image: mcr.microsoft.com/playwright:v1.55.1-noble
312226
steps:
313227
- checkout
314-
- install_js:
315-
playwright: true
228+
- code-infra/install-deps:
229+
browsers: true
316230
- run:
317231
name: pnpm test:e2e-website
318232
command: pnpm test:e2e-website
@@ -322,37 +236,18 @@ jobs:
322236
<<: *default-job
323237
steps:
324238
- checkout
325-
- install_js:
326-
react-version: << parameters.react-version >>
327-
- run:
328-
name: prepare danger on PRs
329-
command: pnpm danger ci
330-
environment:
331-
DANGER_COMMAND: prepareBundleSizeReport
332-
- run:
333-
name: Build packages
334-
command: pnpm release:build
335-
- run:
336-
name: create and upload a size snapshot
337-
command: |
338-
export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID_ARTIFACTS
339-
export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY_ARTIFACTS
340-
export AWS_REGION=$AWS_REGION_ARTIFACTS
341-
pnpm size:snapshot
342-
- run:
343-
name: Run danger on PRs
344-
command: pnpm danger ci --fail-on-errors
345-
environment:
346-
DANGER_COMMAND: reportBundleSize
239+
- code-infra/install-deps:
240+
package-overrides: react@<< parameters.react-version >>
241+
- code-infra/test-package
347242
test_regressions:
348243
<<: *default-job
349244
docker:
350245
- image: mcr.microsoft.com/playwright:v1.55.1-noble
351246
steps:
352247
- checkout
353-
- install_js:
354-
playwright: true
355-
react-version: << parameters.react-version >>
248+
- code-infra/install-deps:
249+
browsers: true
250+
package-overrides: react@<< parameters.react-version >>
356251
- run:
357252
name: Install ffmpeg
358253
command: apt update && apt upgrade -y && apt install ffmpeg -y

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"@inquirer/prompts": "^7.9.0",
7373
"@mui/internal-babel-plugin-display-name": "^1.0.4-canary.7",
7474
"@mui/internal-bundle-size-checker": "^1.0.9-canary.51",
75-
"@mui/internal-code-infra": "^0.0.3-canary.34",
75+
"@mui/internal-code-infra": "^0.0.3-canary.35",
7676
"@mui/internal-markdown": "^2.0.11",
7777
"@mui/internal-netlify-cache": "^0.0.2-canary.0",
7878
"@mui/internal-test-utils": "catalog:",

pnpm-lock.yaml

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)