39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
/**
|
|
* Build the test setups
|
|
*/
|
|
|
|
import path from 'path'
|
|
import {cd, fs, $} from 'zx'
|
|
import {getCompatibilityTestSetups} from './utils.mjs'
|
|
|
|
const absPathOfCompatibilityTestSetups = getCompatibilityTestSetups()
|
|
|
|
const setupsWithErros = []
|
|
|
|
// Try building the setups
|
|
;(async function () {
|
|
for (const setupDir of absPathOfCompatibilityTestSetups) {
|
|
try {
|
|
cd(setupDir)
|
|
const pathToSetup = path.join(setupDir, setupDir)
|
|
fs.removeSync(path.join(pathToSetup, 'node_modules'))
|
|
fs.removeSync(path.join(pathToSetup, 'package-lock.json'))
|
|
fs.removeSync(path.join(pathToSetup, 'yarn.lock'))
|
|
await $`npm install`
|
|
await $`npm run build`
|
|
} catch (err) {
|
|
console.error(err)
|
|
setupsWithErros.push(setupDir)
|
|
}
|
|
}
|
|
|
|
// Stop if there were any errors during the build process,
|
|
// and print all of them to the console.
|
|
if (setupsWithErros.length !== 0) {
|
|
throw new Error(
|
|
`The following setups had problems when their dependencies were being installed:\n${(
|
|
setupsWithErros.join('\n'),
|
|
)}`,
|
|
)
|
|
}
|
|
})()
|