Skip to content

Commit c7baa54

Browse files
authored
build: resolve latest MDC version through yarn (#23220)
Uses Yarn to resolve the latest canary version of MDC in an attempt to avoid flakes due to mismatches.
1 parent 26366e7 commit c7baa54

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

scripts/circleci/setup-mdc-canary.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
const {join} = require('path');
2-
const {spawn} = require('child_process');
2+
const {spawn, spawnSync} = require('child_process');
33
const packageJson = require(join(__dirname, '../../package.json'));
4+
const versionsProcess = spawnSync('yarn', [
5+
'info', 'material-components-web', 'dist-tags.canary', '--json'
6+
], {shell: true});
7+
let latestCanaryVersion = null;
8+
9+
try {
10+
latestCanaryVersion = JSON.parse(versionsProcess.stdout.toString()).data;
11+
} catch (e) {
12+
console.error('Failed to retrieve latest MDC version');
13+
throw e;
14+
}
15+
416
const pattern = /^material-components-web$|^@material\//;
517
const params = Object.keys(packageJson.devDependencies)
618
.filter(dependency => pattern.test(dependency))
7-
.reduce((mdcDependencies, dependency) => [...mdcDependencies, `${dependency}@canary`], []);
19+
.reduce((mdcDependencies, dependency) =>
20+
[...mdcDependencies, `${dependency}@${latestCanaryVersion}`], []);
821

922
if (!params.length) {
1023
throw Error(`Could not find MDC dependencies in package.json`);
1124
}
1225

13-
console.log('Updating all MDC dependencies to latest canary version');
26+
console.log(`Updating all MDC dependencies to version ${latestCanaryVersion}`);
1427
const childProcess = spawn('yarn', ['add', ...params, '-D'], {shell: true});
1528
childProcess.stdout.on('data', data => console.log(data + ''));
1629
childProcess.stderr.on('data', data => console.error(data + ''));

0 commit comments

Comments
 (0)