forked from tidev/ti.nfc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dangerfile.js
48 lines (44 loc) · 1.57 KB
/
dangerfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/* global danger, fail, message */
// requires
const junit = require('@seadub/danger-plugin-junit').default;
const dependencies = require('@seadub/danger-plugin-dependencies').default;
const moduleLint = require('@seadub/danger-plugin-titanium-module').default;
const fs = require('fs');
const path = require('path');
const ENV = process.env;
// Add links to artifacts we've stuffed into the ENV.ARTIFACTS variable
async function linkToArtifacts() {
if (ENV.ARTIFACTS && (ENV.BUILD_STATUS === 'SUCCESS' || ENV.BUILD_STATUS === 'UNSTABLE')) {
const artifacts = ENV.ARTIFACTS.split(';');
if (artifacts.length !== 0) {
const artifactsListing = '- ' + artifacts.map(a => danger.utils.href(`${ENV.BUILD_URL}artifact/${a}`, a)).join('\n- ');
message(`:floppy_disk: Here are the artifacts produced:\n${artifactsListing}`);
}
}
}
async function checkLintLog() {
const lintLog = path.join(__dirname, 'lint.log');
if (!fs.existsSync(lintLog)) {
return;
}
const contents = fs.readFileSync(lintLog, 'utf8');
fail('`npm run lint` failed, please check messages below for output.');
message(`:bomb: Here's the output of \`npm run lint\`:\n\`\`\`${contents}\`\`\``);
}
async function main() {
// do a bunch of things in parallel
// Specifically, anything that collects what labels to add or remove has to be done first before...
await Promise.all([
junit({ pathToReport: './TESTS-*.xml' }),
dependencies({ type: 'npm' }),
linkToArtifacts(),
checkLintLog(),
moduleLint(),
]);
}
main()
.then(() => process.exit(0))
.catch(err => {
fail(err.toString());
process.exit(1);
});