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
256 changes: 128 additions & 128 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: CI
on:
push:
branches:
- master
- chore/migrate-to-flat-configs-v8
pull_request:

concurrency:
Expand All @@ -23,8 +23,8 @@ env:

jobs:
main:
if: ${{ github.repository_owner == 'microsoft' }}
runs-on: macos-14-xlarge
# if: ${{ github.repository_owner == 'microsoft' }}
runs-on: ubuntu-latest
permissions:
contents: 'read'
actions: 'read'
Expand All @@ -48,131 +48,131 @@ jobs:

- run: yarn install --frozen-lockfile

- name: Workspace lint
run: |
yarn nx run workspace-plugin:check-graph
yarn nx g @fluentui/workspace-plugin:tsconfig-base-all --verify
yarn nx g @fluentui/workspace-plugin:normalize-package-dependencies --verify

- name: Type-check just.config.ts files
run: |
# following packages need to be build in advance:
# @fluentui/api-docs is used within apps/public-docsite-resources/just.config.ts,
# @fluentui/digest is used within packages/fluentui/perf-test-northstar/just.config.ts, thus it needs to be build in advance
#
# NOTE: we are running this via nx in order to get cache hits later on
yarn nx run-many -t build -p api-docs digest
yarn tsc -p ./tsconfig.just-scripts-configs.json

- name: 'check packages: installed dependencies versions'
run: |
yarn check:installed-dependencies-versions

- name: check formatting
run: |
yarn nx format:check --base origin/master
# - name: Workspace lint
# run: |
# yarn nx run workspace-plugin:check-graph
# yarn nx g @fluentui/workspace-plugin:tsconfig-base-all --verify
# yarn nx g @fluentui/workspace-plugin:normalize-package-dependencies --verify

# - name: Type-check just.config.ts files
# run: |
# # following packages need to be build in advance:
# # @fluentui/api-docs is used within apps/public-docsite-resources/just.config.ts,
# # @fluentui/digest is used within packages/fluentui/perf-test-northstar/just.config.ts, thus it needs to be build in advance
# #
# # NOTE: we are running this via nx in order to get cache hits later on
# yarn nx run-many -t build -p api-docs digest
# yarn tsc -p ./tsconfig.just-scripts-configs.json
#
# - name: 'check packages: installed dependencies versions'
# run: |
# yarn check:installed-dependencies-versions
#
# - name: check formatting
# run: |
# yarn nx format:check --base origin/master

- name: build, test, lint, test-ssr (affected)
run: |
FLUENT_JEST_WORKER=2 yarn nx affected -t build test lint type-check test-ssr test-integration verify-packaging --exclude react-19-tests-v9 --nxBail

- name: 'Check for unstaged changes'
run: |
git status --porcelain
git diff-index --quiet HEAD -- || exit 1

react-major-versions-integration:
if: ${{ github.repository_owner == 'microsoft' }}
runs-on: macos-14-xlarge
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3
with:
main-branch-name: 'master'

- uses: actions/setup-node@v4
with:
cache: 'yarn'
node-version: '22'

- run: echo number of CPUs "$(getconf _NPROCESSORS_ONLN)"

- run: |
yarn install --frozen-lockfile
yarn rit --react 17 --install-deps
yarn rit --react 18 --install-deps

- name: Verify Cypress installs from RIT temp workspaces (React 17 -> v13, React 18 -> v14)
run: |
"$GITHUB_WORKSPACE"/tmp/rit/react-17/node_modules/.bin/cypress verify
"$GITHUB_WORKSPACE"/tmp/rit/react-18/node_modules/.bin/cypress verify

- name: React Versions Integration Tests (17,18) - E2E
id: e2e
run: |
yarn nx affected -t test-rit--17--e2e,test-rit--18--e2e --exclude='react-19-tests-v9,react-charting,react'

- name: Upload Cypress screenshots if exist
uses: actions/upload-artifact@v4
if: always() && steps.e2e.outcome == 'failure'
with:
name: cypress-screenshots-react-test-rit
path: |
tmp/rit/**/cypress/screenshots/**/*.png
retention-days: 1

- name: React Versions Integration Tests (17,18) - Type-check & Test
run: |
FLUENT_JEST_WORKER=2 yarn nx affected -t test-rit--17--type-check,test-rit--18--type-check,test-rit--17--test,test-rit--18--test --exclude='react-19-tests-v9'

e2e:
if: ${{ github.repository_owner == 'microsoft' }}
# TODO: switch to macos once problematic tests are fixed
# https://github.com/microsoft/fluentui/issues/33173
# https://github.com/microsoft/fluentui/issues/33172
runs-on: ubuntu-latest
permissions:
contents: 'read'
actions: 'read'

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3
with:
main-branch-name: 'master'

- uses: actions/setup-node@v4
with:
cache: 'yarn'
node-version: '22'

- run: echo number of CPUs "$(getconf _NPROCESSORS_ONLN)"

- run: yarn install --frozen-lockfile

- name: Install Playwright dependencies
run: yarn playwright install --with-deps

- name: Verify Cypress install
run: yarn cypress verify

- name: Cypress/Playwright E2E tests
run: yarn nx affected -t e2e --exclude react-19-tests-v9 --nxBail --parallel 1

- name: Upload Cypress screenshots if exist
uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: |
apps/*/cypress/screenshots/**/*.png
packages/**/cypress/screenshots/**/*.png
retention-days: 1
FLUENT_JEST_WORKER=2 yarn nx run-many -t lint --nxBail

# - name: 'Check for unstaged changes'
# run: |
# git status --porcelain
# git diff-index --quiet HEAD -- || exit 1

# react-major-versions-integration:
# if: ${{ github.repository_owner == 'microsoft' }}
# runs-on: macos-14-xlarge
# steps:
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0
#
# - name: Derive appropriate SHAs for base and head for `nx affected` commands
# uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3
# with:
# main-branch-name: 'master'
#
# - uses: actions/setup-node@v4
# with:
# cache: 'yarn'
# node-version: '22'
#
# - run: echo number of CPUs "$(getconf _NPROCESSORS_ONLN)"
#
# - run: |
# yarn install --frozen-lockfile
# yarn rit --react 17 --install-deps
# yarn rit --react 18 --install-deps
#
# - name: Verify Cypress installs from RIT temp workspaces (React 17 -> v13, React 18 -> v14)
# run: |
# "$GITHUB_WORKSPACE"/tmp/rit/react-17/node_modules/.bin/cypress verify
# "$GITHUB_WORKSPACE"/tmp/rit/react-18/node_modules/.bin/cypress verify
#
# - name: React Versions Integration Tests (17,18) - E2E
# id: e2e
# run: |
# yarn nx affected -t test-rit--17--e2e,test-rit--18--e2e --exclude='react-19-tests-v9,react-charting,react'
#
# - name: Upload Cypress screenshots if exist
# uses: actions/upload-artifact@v4
# if: always() && steps.e2e.outcome == 'failure'
# with:
# name: cypress-screenshots-react-test-rit
# path: |
# tmp/rit/**/cypress/screenshots/**/*.png
# retention-days: 1
#
# - name: React Versions Integration Tests (17,18) - Type-check & Test
# run: |
# FLUENT_JEST_WORKER=2 yarn nx affected -t test-rit--17--type-check,test-rit--18--type-check,test-rit--17--test,test-rit--18--test --exclude='react-19-tests-v9'
#
# e2e:
# if: ${{ github.repository_owner == 'microsoft' }}
# # TODO: switch to macos once problematic tests are fixed
# # https://github.com/microsoft/fluentui/issues/33173
# # https://github.com/microsoft/fluentui/issues/33172
# runs-on: ubuntu-latest
# permissions:
# contents: 'read'
# actions: 'read'
#
# steps:
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0
#
# - name: Derive appropriate SHAs for base and head for `nx affected` commands
# uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3
# with:
# main-branch-name: 'master'
#
# - uses: actions/setup-node@v4
# with:
# cache: 'yarn'
# node-version: '22'
#
# - run: echo number of CPUs "$(getconf _NPROCESSORS_ONLN)"
#
# - run: yarn install --frozen-lockfile
#
# - name: Install Playwright dependencies
# run: yarn playwright install --with-deps
#
# - name: Verify Cypress install
# run: yarn cypress verify
#
# - name: Cypress/Playwright E2E tests
# run: yarn nx affected -t e2e --exclude react-19-tests-v9 --nxBail --parallel 1
#
# - name: Upload Cypress screenshots if exist
# uses: actions/upload-artifact@v4
# if: failure()
# with:
# name: cypress-screenshots
# path: |
# apps/*/cypress/screenshots/**/*.png
# packages/**/cypress/screenshots/**/*.png
# retention-days: 1
4 changes: 0 additions & 4 deletions packages/a11y-testing/.eslintrc.json

This file was deleted.

5 changes: 5 additions & 0 deletions packages/a11y-testing/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [...fluentPlugin.configs['flat/node']];
4 changes: 0 additions & 4 deletions packages/api-docs/.eslintrc.json

This file was deleted.

5 changes: 5 additions & 0 deletions packages/api-docs/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [...fluentPlugin.configs['flat/node-legacy']];
4 changes: 0 additions & 4 deletions packages/azure-themes/.eslintrc.json

This file was deleted.

5 changes: 5 additions & 0 deletions packages/azure-themes/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [...fluentPlugin.configs['flat/react-legacy']];
15 changes: 0 additions & 15 deletions packages/cra-template/.eslintrc.json

This file was deleted.

27 changes: 27 additions & 0 deletions packages/cra-template/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');
const tseslint = require('typescript-eslint');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [
...fluentPlugin.configs['flat/react-legacy'],
{
files: ['template/**/*.{ts,tsx}'],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: false,
},
},
rules: {
// the rule can't understand that the actual list of deps is in template.json
'import/no-extraneous-dependencies': 'off',
// valid in some template files - don't wanna spam consumer with inline eslint-disabled pragmas
'@typescript-eslint/triple-slash-reference': 'off',
// Disable type-aware rules since template files are not in tsconfig
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/no-deprecated': 'off',
'@fluentui/ban-context-export': 'off',
},
},
];
2 changes: 1 addition & 1 deletion packages/cra-template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"directory": "packages/cra-template"
},
"scripts": {
"lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ext .js,.ts,.tsx .",
"lint": " eslint --ext .js,.ts,.tsx .",
"test-integration": "node -r @fluentui/scripts-babel/register scripts/test.ts",
"type-check": "tsc -p ."
},
Expand Down
4 changes: 0 additions & 4 deletions packages/date-time-utilities/.eslintrc.json

This file was deleted.

5 changes: 5 additions & 0 deletions packages/date-time-utilities/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [...fluentPlugin.configs['flat/react-legacy']];
4 changes: 0 additions & 4 deletions packages/dom-utilities/.eslintrc.json

This file was deleted.

5 changes: 5 additions & 0 deletions packages/dom-utilities/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check
const fluentPlugin = require('@fluentui/eslint-plugin');

/** @type {import("eslint").Linter.Config[]} */
module.exports = [...fluentPlugin.configs['flat/react-legacy']];
Loading