Skip to content

Commit

Permalink
ci(.github): add dedendency-dedup workflow job and dedupe all packages (
Browse files Browse the repository at this point in the history
#25171)

* chore: dedup @types/*

* chore: dedup @jest/*

* chore: dedup @babel/*

* chore: dedup @octokit/*

* chore: dedup @microsoft/*

* chore: dedup @jridgewell/*

* chore: dedup @npmcli/*

* chore: dedup @rushstack/*

* chore: dedupe everything else

* ci(.github): add dedendency-dedup workflow job

* fix(scripts): update dangerjs approvedPackages

* chore: fix @types/react,react-dom violations within resolutions config

* fix(scripts): fix invalid express api call in project-test that was exposed after depdendecy dedupe

* chore: dedupe d3

* test(react-charting): provide proper config for test after d3 deduping
  • Loading branch information
Hotell committed Oct 19, 2022
1 parent 463ab89 commit 643aff3
Show file tree
Hide file tree
Showing 7 changed files with 315 additions and 1,682 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/check-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,35 @@ on:
pull_request:

jobs:
dependency-deduplication:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14.18.1

- uses: tj-actions/changed-files@v32
id: changed-files-specific
with:
files: |
yarn.lock
- name: Check package duplicates
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "yarn.lock changed! Verifying package deduplication ..."
npx yarn-deduplicate --strategy fewer --list --fail
if [[ $? -ne 0 ]]; then
echo "Your changes introduced package duplication 🚨"
echo "Run 'npx yarn-deduplicate --strategy fewer' to fix those."
else
echo "No duplicate packages introduced ✅"
fi
dependency-mismatches:
runs-on: ubuntu-latest
steps:
Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,6 @@
"@typescript-eslint/experimental-utils": "4.22.0",
"@typescript-eslint/parser": "4.22.0",
"@types/jest-axe/axe-core": "4.2.1",
"@types/react@<18.0.0": "@types/react@17.0.44",
"@types/react-dom@<18.0.0": "@types/react-dom@17.0.15",
"eslint": "7.25.0",
"requestretry": "7.0.0"
},
Expand Down
25 changes: 18 additions & 7 deletions packages/react-charting/jest.config.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
let { createConfig, resolveMergeStylesSerializer } = require('@fluentui/scripts/jest/jest-resources');
let path = require('path');

function getEsmOnlyPackagesToCjsMapping() {
/**
* relative path to monorepo root
*/
const prefix = `<rootDir>/../../`;
/**
* map of packages that ship only as ESM
*/
const cjsPathsToEsmOnlyPackages = {
'^d3-scale$': prefix + 'node_modules/d3-scale/dist/d3-scale.js',
'^d3-array$': prefix + 'node_modules/d3-scale/node_modules/d3-array/dist/d3-array.js',
'^d3-time$': prefix + 'node_modules/d3-scale/node_modules/d3-time/dist/d3-time.js',
};
return cjsPathsToEsmOnlyPackages;
}

const config = createConfig({
setupFiles: [path.resolve(path.join(__dirname, 'config', 'tests.js'))],
snapshotSerializers: [resolveMergeStylesSerializer(), 'enzyme-to-json/serializer'],

moduleNameMapper: {
'd3-scale': 'd3-scale/dist/d3-scale.min.js',
'd3-array': 'd3-scale/node_modules/d3-array/dist/d3-array.min.js',
'd3-interpolate': 'd3-scale/node_modules/d3-interpolate/dist/d3-interpolate.min.js',
'd3-color': 'd3-scale/node_modules/d3-color/dist/d3-color.min.js',
'd3-format': 'd3-scale/node_modules/d3-format/dist/d3-format.min.js',
'd3-time-format': 'd3-scale/node_modules/d3-time-format/dist/d3-time-format.min.js',
'd3-time': 'd3-scale/node_modules/d3-time/dist/d3-time.min.js',
...getEsmOnlyPackagesToCjsMapping(),
},
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ export default [
'react-fela@10.6.1',
'react-is@16.8.2',
'react-is@16.9.0',
'react-is@16.13.1',
'react-is@17.0.2',
'react-resize-detector@4.2.0',
'react-transition-group@4.4.1',
Expand Down
28 changes: 14 additions & 14 deletions scripts/gulp/serve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ const serve = (
configureMiddleware: (express: Express) => Express = app => app,
): Promise<Server> => {
return new Promise((resolve, reject) => {
const server = configureMiddleware(
express().use(
historyApiFallback({
verbose: false,
}),
),
)
.use(express.static(directoryPath))
.listen(port, host, err => {
if (err) {
reject(err);
} else {
try {
const server = configureMiddleware(
express().use(
historyApiFallback({
verbose: false,
}),
),
)
.use(express.static(directoryPath))
.listen(port, host, () => {
log(colors.yellow(`Server running at http://${host}:${port}`));
resolve(server);
}
});
});
} catch (err) {
reject(err);
}
});
};

Expand Down
4 changes: 1 addition & 3 deletions scripts/projects-test/performBrowserTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ function startServer(publicDirectory: string, listenPort: number) {
const app = express();
app.use(express.static(publicDirectory));

const server = app.listen(listenPort, config.server_host, e => {
if (e) return reject(e);

const server = app.listen(listenPort, config.server_host, () => {
resolve(server);
});
} catch (err) {
Expand Down

0 comments on commit 643aff3

Please sign in to comment.