Skip to content

Commit

Permalink
Check that generated compat-data is up to date on CI (#11024)
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Jan 20, 2020
1 parent de75dbf commit 2b23c28
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
8 changes: 7 additions & 1 deletion Makefile
Expand Up @@ -101,7 +101,7 @@ bootstrap-flowcheck: bootstrap-only
$(YARN) gulp build-babel-types
$(MAKE) build-typings

lint-ci: lint-js-ci lint-ts-ci
lint-ci: lint-js-ci lint-ts-ci check-compat-data

lint-js-ci: bootstrap-only
$(MAKE) lint-js
Expand All @@ -125,6 +125,12 @@ fix-js:
fix-json:
$(YARN) prettier "{$(COMMA_SEPARATED_SOURCES)}/*/test/fixtures/**/options.json" --write --loglevel warn

check-compat-data:
cd packages/babel-compat-data; CHECK_COMPAT_DATA=true $(YARN) run build-data

build-compat-data:
cd packages/babel-compat-data; $(YARN) run build-data

clean: test-clean
rm -f .npmrc
rm -rf packages/babel-polyfill/browser*
Expand Down
13 changes: 7 additions & 6 deletions packages/babel-compat-data/scripts/build-data.js
Expand Up @@ -4,7 +4,6 @@ const fs = require("fs");
const path = require("path");
const semver = require("semver");
const flattenDeep = require("lodash/flattenDeep");
const isEqual = require("lodash/isEqual");
const mapValues = require("lodash/mapValues");
const pickBy = require("lodash/pickBy");
const { unreleasedLabels } = require("@babel/helper-compilation-targets");
Expand Down Expand Up @@ -297,18 +296,20 @@ for (const target of ["plugin", "corejs2-built-in"]) {
);
const dataPath = path.join(__dirname, `../data/${target}s.json`);

if (process.argv[2] === "--check") {
const currentData = require(dataPath);
const stringified = JSON.stringify(newData, null, 2) + "\n";
if (process.env.CHECK_COMPAT_DATA) {
const currentData = fs.readFileSync(dataPath, "utf8");

if (!isEqual(currentData, newData)) {
// Compare as JSON strings to also check keys ordering
if (currentData !== stringified) {
console.error(
"The newly generated plugin/built-in data does not match the current " +
"files. Re-run `npm run build-data`."
"files. Re-run `make build-compat-data`."
);
process.exitCode = 1;
break;
}
} else {
fs.writeFileSync(dataPath, `${JSON.stringify(newData, null, 2)}\n`);
fs.writeFileSync(dataPath, stringified);
}
}

0 comments on commit 2b23c28

Please sign in to comment.