Skip to content

Commit

Permalink
Check that generated compat-data is up to date on CI
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed Jan 16, 2020
1 parent 3daab41 commit 8339bad
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 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
17 changes: 8 additions & 9 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,19 +296,19 @@ const generateData = (environments, features) => {
);
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.exit(1);
}

process.exit(0);
} else {
fs.writeFileSync(dataPath, stringified);
}

fs.writeFileSync(dataPath, `${JSON.stringify(newData, null, 2)}\n`);
});

0 comments on commit 8339bad

Please sign in to comment.