sourcecred/config/travis.js
Dandelion Mané 3b3564203c
Flow: enable //$ExpectFlowError (#315)
As of this commit, adding the comment `//$ExpectFlowError` in flow-typed
code asserts that the next line must cause a flow error. If it does, no
error or warning is generated. If it does not, then this produces a flow
warning, which is visible to developers running `yarn flow` and
additionally causes travis to fail.

Test plan:

- As committed, `yarn travis` passes.
- I added `//$ExpectFlowError` above some line of flow-checked code which does
not currently throw an error. Afterwards, `yarn travis` failed (and a
helpful message was displayed in console on running `yarn flow`)
- I added the following bad code into one of our files:
```javascript
//$ExpectFlowError
const foo: string = 3;
```
As expected, `yarn flow` and `yarn travis` both passed.
2018-05-29 13:56:36 -07:00

87 lines
1.8 KiB
JavaScript

// @flow
const execDependencyGraph = require("../src/tools/execDependencyGraph").default;
main();
function main() {
const mode =
process.env["TRAVIS_EVENT_TYPE"] === "cron" ||
process.argv.includes("--full")
? "FULL"
: "BASIC";
execDependencyGraph(makeTasks(mode)).then(({success}) => {
process.exitCode = success ? 0 : 1;
});
}
function makeTasks(mode /*: "BASIC" | "FULL" */) {
const basicTasks = [
{
id: "ensure-flow-typing",
cmd: ["./scripts/ensure-flow.sh"],
deps: [],
},
{
// eslint-disable-next-line no-useless-concat
id: "check-stop" + "ships",
// eslint-disable-next-line no-useless-concat
cmd: ["./scripts/check-stop" + "ships.sh"],
deps: [],
},
{
id: "check-pretty",
cmd: ["npm", "run", "--silent", "check-pretty"],
deps: [],
},
{
id: "lint",
cmd: ["npm", "run", "--silent", "lint"],
deps: [],
},
{
id: "flow",
cmd: [
"npm",
"run",
"--silent",
"flow",
"--",
"--quiet",
"--max-warnings=0",
],
deps: [],
},
{
id: "ci-test",
cmd: ["npm", "run", "--silent", "ci-test"],
deps: [],
},
{
id: "backend",
cmd: ["npm", "run", "--silent", "backend"],
deps: [],
},
];
const extraTasks = [
{
id: "fetchGithubRepoTest",
cmd: ["./src/plugins/github/fetchGithubRepoTest.sh", "--no-build"],
deps: ["backend"],
},
{
id: "loadRepositoryTest",
cmd: ["./src/plugins/git/loadRepositoryTest.sh", "--no-build"],
deps: ["backend"],
},
];
switch (mode) {
case "BASIC":
return basicTasks;
case "FULL":
return [].concat(basicTasks, extraTasks);
default:
/*:: (mode: empty); */ throw new Error(mode);
}
}