Check plugin/built-in data on travis

This commit is contained in:
Brian Ng
2017-03-12 12:21:12 -05:00
parent 32ebccd050
commit 22dab1fa95
2 changed files with 34 additions and 6 deletions

View File

@@ -25,13 +25,16 @@ install:
- $PKG_CMD install
script:
- 'if [ -n "${LINT-}" ]; then $PKG_CMD run lint ; fi'
- 'if [ -z "${LINT-}" ]; then $PKG_CMD run test-ci ; fi'
- 'if [ -n "${DATA_CHECK-}" ]; then $PKG_CMD run build-data -- --check ; fi'
- 'if [ -z "${LINT-}" ] && [ -z "${DATA_CHECK-}" ]; then $PKG_CMD run test-ci ; fi'
matrix:
fast_finish: true
include:
- node_js: "node"
env: LINT=true PKG_CMD="npm"
- node_js: "node"
env: DATA_CHECK=true PKG_CMD="npm"
exclude:
- node_js: "4"
env: PKG_CMD="yarn"
after_success: 'if [ -z "${LINT-}" ]; then npm run coverage-ci ; fi'
after_success: 'if [ -z "${LINT-}" ] && [ -z "${DATA_CHECK-}" ]; then npm run coverage-ci ; fi'

View File

@@ -5,6 +5,7 @@ const path = require("path");
const flatten = require("lodash/flatten");
const flattenDeep = require("lodash/flattenDeep");
const isEqual = require("lodash/isEqual");
const mapValues = require("lodash/mapValues");
const pluginFeatures = require("../data/plugin-features");
const builtInFeatures = require("../data/built-in-features");
@@ -197,12 +198,36 @@ const generateData = (environments, features) => {
});
};
const pluginsDataPath = path.join(__dirname, "../data/plugins.json");
const builtInsDataPath = path.join(__dirname, "../data/built-ins.json");
const newPluginData = generateData(environments, pluginFeatures);
const newBuiltInsData = generateData(environments, builtInFeatures);
if (process.argv[2] === "--check") {
const currentPluginData = require(pluginsDataPath);
const currentBuiltInsData = require(builtInsDataPath);
if (
!isEqual(currentPluginData, newPluginData) ||
!isEqual(currentBuiltInsData, newBuiltInsData)
) {
console.error(
"The newly generated plugin/built-in data does not match the current " +
"files. Re-run `npm run build-data`.",
);
process.exit(1);
}
process.exit(0);
}
fs.writeFileSync(
path.join(__dirname, "../data/plugins.json"),
JSON.stringify(generateData(environments, pluginFeatures), null, 2) + "\n",
pluginsDataPath,
JSON.stringify(newPluginData, null, 2) + "\n",
);
fs.writeFileSync(
path.join(__dirname, "../data/built-ins.json"),
JSON.stringify(generateData(environments, builtInFeatures), null, 2) + "\n",
builtInsDataPath,
JSON.stringify(newBuiltInsData, null, 2) + "\n",
);