Skip to content
Merged
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
101 changes: 28 additions & 73 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: 2.1
orbs:
code-infra: https://raw.githubusercontent.com/mui/mui-public/fdfa28912aa56f2473702b4a49a5a7a3164f5e4c/.circleci/orbs/code-infra.yml
code-infra: https://raw.githubusercontent.com/mui/mui-public/ecaf36c894f9e8bc68959b23bf33e45aefeb319c/.circleci/orbs/code-infra.yml

parameters:
workflow:
Expand Down Expand Up @@ -49,32 +49,12 @@ default-context: &default-context
# restore_cache:
# key: v1-repo-{{ .Branch }}-{{ .Revision }}

commands:
install-deps:
parameters:
ignore-workspace:
type: boolean
default: false
react-version:
type: string
default: stable
typescript-version:
type: string
default: stable
playwright-version:
type: string
default: stable
steps:
- code-infra/install-deps:
package-overrides: react@<< parameters.react-version >> typescript@<< parameters.typescript-version >> @playwright/test@<< parameters.playwright-version >> playwright@<< parameters.playwright-version >>
ignore-workspace: << parameters.ignore-workspace >>

jobs:
test_unit:
<<: *default-job
steps:
- checkout
- install-deps:
- code-infra/install-deps:
react-version: << parameters.react-version >>
- run:
name: Tests fake browser
Expand All @@ -101,50 +81,30 @@ jobs:
<<: *default-job
steps:
- checkout
- install-deps
- code-infra/install-deps
- code-infra/eslint
- code-infra/stylelint
- code-infra/valelint
test_static:
<<: *default-job
resource_class: medium
environment:
<<: *default-environment
# pnpm 11's `pnpm dedupe --check` exceeds Node's default heap on this runner.
NODE_OPTIONS: --max-old-space-size=3584
steps:
- checkout
- install-deps
- code-infra/install-deps
- code-infra/check-static-changes
- run:
name: Generate PropTypes
- code-infra/check-generated:
command: pnpm proptypes
- run:
name: '`pnpm proptypes` changes committed?'
command: git add -A && git diff --exit-code --staged
- run:
name: Generate the documentation
- code-infra/check-generated:
command: pnpm docs:api
- run:
name: '`pnpm docs:api` changes committed?'
command: git add -A && git diff --exit-code --staged
- run:
name: '`pnpm extract-error-codes` changes committed?'
command: |
pnpm extract-error-codes
git add -A && git diff --exit-code --staged
- code-infra/extract-error-codes
test_types:
<<: *default-job
resource_class: xlarge.gen2
steps:
- checkout
- install-deps
- run:
name: Transpile TypeScript demos
- code-infra/install-deps
- code-infra/check-generated:
command: pnpm docs:typescript:formatted
- run:
name: '`pnpm docs:typescript:formatted` changes committed?'
command: git add -A && git diff --exit-code --staged
- run:
name: Tests TypeScript definitions
command: pnpm typescript:ci
Expand All @@ -156,7 +116,7 @@ jobs:
resource_class: xlarge.gen2
steps:
- checkout
- install-deps:
- code-infra/install-deps:
typescript-version: << parameters.typescript-version >>
- run:
name: Tests TypeScript definitions
Expand Down Expand Up @@ -189,7 +149,7 @@ jobs:
- run:
name: Configure pnpm engine-strict
command: pnpm config set --location project engine-strict false
- install-deps:
- code-infra/install-deps:
react-version: << parameters.react-version >>
playwright-version: '1.49.1'
- run:
Expand All @@ -215,7 +175,7 @@ jobs:
playwright-img-version: v1.62.1-noble
steps:
- checkout
- install-deps:
- code-infra/install-deps:
react-version: << parameters.react-version >>
- run:
name: Tests Chromium
Expand All @@ -240,7 +200,7 @@ jobs:
playwright-img-version: v1.62.1-noble
steps:
- checkout
- install-deps:
- code-infra/install-deps:
react-version: << parameters.react-version >>
- run:
name: pnpm test:e2e
Expand All @@ -254,7 +214,7 @@ jobs:
playwright-img-version: v1.62.1-noble
steps:
- checkout
- install-deps
- code-infra/install-deps
- run:
name: pnpm test:e2e-website
command: pnpm test:e2e-website
Expand All @@ -268,7 +228,7 @@ jobs:
playwright-img-version: v1.62.1-noble
steps:
- checkout
- install-deps:
- code-infra/install-deps:
react-version: << parameters.react-version >>
- run:
name: Run visual regression tests
Expand All @@ -279,14 +239,12 @@ jobs:
# pnpm-workspace.yaml (overrides) and may touch pnpm-lock.yaml. Exclude those so
# this check still verifies the a11y results without tripping on the pinned deps.
command: git add -A -- . ':(exclude)pnpm-*.yaml' && git diff --exit-code --staged
- run:
name: Upload screenshots to Argos CI
command: pnpm test:argos
- code-infra/argos-push
test_bundling_prepare:
<<: *default-job
steps:
- checkout
- install-deps
- code-infra/install-deps
- run:
name: Build packages for fixtures
command: pnpm lerna run --scope "@mui/*" build
Expand All @@ -305,7 +263,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -318,7 +276,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -335,7 +293,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -351,7 +309,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -367,7 +325,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -383,7 +341,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -399,7 +357,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -414,7 +372,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -432,7 +390,7 @@ jobs:
path: /tmp/material-ui
- attach_workspace:
at: /tmp/material-ui/packed
- install-deps:
- code-infra/install-deps:
ignore-workspace: true
- run:
name: Test fixture
Expand All @@ -442,14 +400,11 @@ jobs:
resource_class: medium
steps:
- checkout
- install-deps
- code-infra/install-deps
- run:
name: Build @mui packages
command: pnpm release:build
# @TODO: Not using code-infra/upload-size-snapshot since it doesn't support setting concurrency yet
- run:
name: Create and upload a size snapshot
command: pnpm size:snapshot --concurrency 6
- code-infra/upload-size-snapshot
- run:
name: Validate type declarations
command: pnpm validate-declarations
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/ci-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ on:
permissions: {}

jobs:
continuous-releases:
name: Continuous releases
uses: mui/mui-public/.github/workflows/ci-base.yml@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master

test-dev:
if: ${{ github.actor != 'l10nbot' }}
runs-on: ${{ matrix.os }}
Expand Down
28 changes: 24 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,29 @@ on:
permissions: {}

jobs:
continuous-releases:
name: Continuous releases / pkg.pr.new releases
if: ${{ github.repository_owner == 'mui' }}
runs-on: ubuntu-latest
steps:
- run: echo "${{ github.actor }}"
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# fetch all tags which are required for `pnpm release:changelog`
fetch-depth: 0
- name: Set up pnpm
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- name: Use Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '22.23.2'
# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies
cache: 'pnpm'
- run: pnpm install
- run: pnpm release:build
- name: Publish packages to pkg.pr.new
uses: mui/mui-public/.github/actions/ci-publish@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master

# Tests dev-only scripts across all supported dev environments
test-dev:
# l10nbot does not affect dev scripts.
Expand Down Expand Up @@ -49,9 +72,6 @@ jobs:
${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}-
${{ runner.os }}-nextjs-
- run: pnpm release:build
- name: Publish packages to pkg.pr.new
uses: mui/mui-public/.github/actions/ci-publish@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Build docs
run: pnpm docs:build
env:
Expand Down Expand Up @@ -96,7 +116,7 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Prepare for publishing
uses: mui/mui-public/.github/actions/publish-prepare@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/actions/publish-prepare@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
with:
node-version: '22.23.2'
- name: Dry run npm publishing
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/claude-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ permissions: {}

jobs:
claude-review:
uses: mui/mui-public/.github/workflows/claude-review.yml@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/workflows/claude-review.yml@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
permissions:
contents: read # read the repo (checkout + git diff)
id-token: write # mint the GitHub OIDC token exchanged for a Claude token via WIF
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/closed-issue-message.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
add-comment:
name: Add closing message
if: github.event.issue.state_reason == 'completed'
uses: mui/mui-public/.github/workflows/issues_add-closing-message.yml@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/workflows/issues_add-closing-message.yml@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
permissions:
contents: read
issues: write
2 changes: 1 addition & 1 deletion .github/workflows/create-cherry-pick-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions: {}
jobs:
create_pr:
name: Create cherry-pick PR
uses: mui/mui-public/.github/workflows/prs_create-cherry-pick-pr.yml@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/workflows/prs_create-cherry-pick-pr.yml@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
permissions:
contents: write
pull-requests: write
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
ref: ${{ github.event_name == 'push' && github.sha || inputs.sha }}
fetch-depth: 0 # Fetch full history for proper git operations
- name: Prepare for publishing
uses: mui/mui-public/.github/actions/publish-prepare@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/actions/publish-prepare@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
with:
node-version: '22.23.2'
- name: Publish packages
Expand All @@ -70,7 +70,7 @@ jobs:
ref: ${{ inputs.sha }}
fetch-depth: 0 # Fetch full history for proper git operations
- name: Prepare for publishing
uses: mui/mui-public/.github/actions/publish-prepare@93fb2edda2af4fb4ccf786cd1ffe8bb4f8d520f4 # master
uses: mui/mui-public/.github/actions/publish-prepare@ecaf36c894f9e8bc68959b23bf33e45aefeb319c # master
with:
node-version: '22.23.2'
- name: Publish packages
Expand Down
Loading
Loading