skuba 4.0.0 โ 4.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/git/commitAllChanges.d.ts +1 -1
- package/lib/api/git/commitAllChanges.js +4 -1
- package/lib/api/git/commitAllChanges.js.map +1 -1
- package/lib/api/git/currentBranch.d.ts +10 -0
- package/lib/api/git/currentBranch.js +41 -0
- package/lib/api/git/currentBranch.js.map +1 -0
- package/lib/api/git/index.d.ts +2 -1
- package/lib/api/git/index.js +4 -1
- package/lib/api/git/index.js.map +1 -1
- package/lib/api/git/log.d.ts +9 -2
- package/lib/api/git/log.js +24 -5
- package/lib/api/git/log.js.map +1 -1
- package/lib/api/git/remote.d.ts +4 -2
- package/lib/api/git/remote.js +22 -5
- package/lib/api/git/remote.js.map +1 -1
- package/lib/api/github/environment.d.ts +0 -4
- package/lib/api/github/environment.js +3 -7
- package/lib/api/github/environment.js.map +1 -1
- package/lib/cli/adapter/eslint.js +16 -1
- package/lib/cli/adapter/eslint.js.map +1 -1
- package/lib/cli/configure/analysis/package.js +1 -1
- package/lib/cli/configure/analysis/package.js.map +1 -1
- package/lib/cli/configure/modules/package.js +1 -1
- package/lib/cli/configure/modules/package.js.map +1 -1
- package/lib/cli/configure/processing/package.d.ts +1 -0
- package/lib/cli/format.js +3 -2
- package/lib/cli/format.js.map +1 -1
- package/lib/cli/init/git.d.ts +0 -1
- package/lib/cli/init/git.js +1 -11
- package/lib/cli/init/git.js.map +1 -1
- package/lib/cli/init/index.js +7 -3
- package/lib/cli/init/index.js.map +1 -1
- package/lib/cli/lint/autofix.d.ts +2 -0
- package/lib/cli/lint/autofix.js +114 -0
- package/lib/cli/lint/autofix.js.map +1 -0
- package/lib/cli/lint/external.js +6 -0
- package/lib/cli/lint/external.js.map +1 -1
- package/lib/cli/node.js +5 -2
- package/lib/cli/node.js.map +1 -1
- package/lib/cli/start.js +3 -4
- package/lib/cli/start.js.map +1 -1
- package/lib/utils/env.d.ts +5 -0
- package/lib/utils/env.js +9 -0
- package/lib/utils/env.js.map +1 -0
- package/package.json +78 -64
- package/template/base/jest.config.ts +6 -0
- package/template/express-rest-api/.buildkite/pipeline.yml +13 -22
- package/template/express-rest-api/.env +1 -0
- package/template/express-rest-api/docker-compose.yml +3 -1
- package/template/express-rest-api/gantry.apply.yml +2 -0
- package/template/express-rest-api/gantry.build.yml +2 -1
- package/template/express-rest-api/package.json +2 -2
- package/template/greeter/.buildkite/pipeline.yml +4 -9
- package/template/greeter/docker-compose.yml +3 -1
- package/template/greeter/package.json +2 -2
- package/template/koa-rest-api/.buildkite/pipeline.yml +13 -22
- package/template/koa-rest-api/.env +1 -0
- package/template/koa-rest-api/docker-compose.yml +3 -1
- package/template/koa-rest-api/gantry.apply.yml +2 -0
- package/template/koa-rest-api/gantry.build.yml +2 -1
- package/template/koa-rest-api/package.json +3 -3
- package/template/lambda-sqs-worker/.buildkite/pipeline.yml +16 -22
- package/template/lambda-sqs-worker/.env +1 -0
- package/template/lambda-sqs-worker/docker-compose.yml +3 -1
- package/template/lambda-sqs-worker/package.json +2 -2
- package/template/lambda-sqs-worker/serverless.yml +6 -11
- package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +14 -20
- package/template/lambda-sqs-worker-cdk/cdk.json +3 -3
- package/template/lambda-sqs-worker-cdk/docker-compose.yml +3 -1
- package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +2 -0
- package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -0
- package/template/lambda-sqs-worker-cdk/package.json +1 -1
- package/template/private-npm-package/.buildkite/pipeline.yml +3 -2
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
|
+
};
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.autofix = void 0;
|
|
35
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
36
|
+
const Git = __importStar(require("../../api/git"));
|
|
37
|
+
const eslint_1 = require("../../cli/adapter/eslint");
|
|
38
|
+
const prettier_1 = require("../../cli/adapter/prettier");
|
|
39
|
+
const env_1 = require("../../utils/env");
|
|
40
|
+
const logging_1 = require("../../utils/logging");
|
|
41
|
+
const AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';
|
|
42
|
+
const shouldPush = (dir) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
if (!(0, env_1.isCiEnv)()) {
|
|
44
|
+
// We're not running in a CI environment so we don't need to push autofixes.
|
|
45
|
+
// Ideally we'd drive this off of repository write permissions, but that is
|
|
46
|
+
// non-trivial to infer without attempting an actual write.
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const currentBranch = yield Git.currentBranch({ dir });
|
|
51
|
+
const isDefaultBuildkiteBranch = currentBranch &&
|
|
52
|
+
[
|
|
53
|
+
process.env.BUILDKITE_PIPELINE_DEFAULT_BRANCH,
|
|
54
|
+
'master',
|
|
55
|
+
'main',
|
|
56
|
+
].includes(currentBranch);
|
|
57
|
+
const isProtectedGitHubBranch = process.env.GITHUB_REF_PROTECTED === 'true';
|
|
58
|
+
if (isDefaultBuildkiteBranch || isProtectedGitHubBranch) {
|
|
59
|
+
// The current branch is a protected branch.
|
|
60
|
+
// We respect GitHub Flow; avoid pushing directly to the default branch.
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (_a) { }
|
|
65
|
+
try {
|
|
66
|
+
const headCommitMessage = yield Git.getHeadCommitMessage({ dir });
|
|
67
|
+
if (headCommitMessage === AUTOFIX_COMMIT_MESSAGE) {
|
|
68
|
+
// Short circuit when the head commit appears to be one of our autofixes.
|
|
69
|
+
// Repeating the same operation is unlikely to correct outstanding issues.
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (_b) { }
|
|
74
|
+
// Allow the push attempt to go ahead if our guards have been cleared.
|
|
75
|
+
return true;
|
|
76
|
+
});
|
|
77
|
+
const autofix = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
+
const dir = process.cwd();
|
|
79
|
+
if (!(yield shouldPush(dir))) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Naively try to autofix issues as we can't tell from ESLint output.
|
|
83
|
+
try {
|
|
84
|
+
logging_1.log.newline();
|
|
85
|
+
logging_1.log.warn(`Trying to autofix with ESLint and Prettier...`);
|
|
86
|
+
const logger = (0, logging_1.createLogger)(input.debug);
|
|
87
|
+
yield (0, eslint_1.runESLint)('format', logger);
|
|
88
|
+
yield (0, prettier_1.runPrettier)('format', logger);
|
|
89
|
+
const ref = yield Git.commitAllChanges({
|
|
90
|
+
dir,
|
|
91
|
+
message: AUTOFIX_COMMIT_MESSAGE,
|
|
92
|
+
});
|
|
93
|
+
if (!ref) {
|
|
94
|
+
return logging_1.log.warn('No autofixes detected.');
|
|
95
|
+
}
|
|
96
|
+
yield (process.env.GITHUB_ACTIONS
|
|
97
|
+
? // GitHub's checkout action should preconfigure the Git CLI.
|
|
98
|
+
(0, simple_git_1.default)().push()
|
|
99
|
+
: // In other CI environments (Buildkite) we fall back to GitHub App auth.
|
|
100
|
+
Git.push({
|
|
101
|
+
auth: { type: 'gitHubApp' },
|
|
102
|
+
dir: process.cwd(),
|
|
103
|
+
ref,
|
|
104
|
+
}));
|
|
105
|
+
logging_1.log.warn(`Pushed fix commit ${ref}.`);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
logging_1.log.warn(logging_1.log.bold('Failed to push fix commit.'));
|
|
109
|
+
logging_1.log.warn(logging_1.log.bold('Does your CI environment have write access to your Git repository?'));
|
|
110
|
+
logging_1.log.subtle(err);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
exports.autofix = autofix;
|
|
114
|
+
//# sourceMappingURL=autofix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../../src/cli/lint/autofix.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/lint/external.js
CHANGED
|
@@ -27,6 +27,7 @@ exports.externalLint = exports.StreamInterceptor = void 0;
|
|
|
27
27
|
const stream_1 = __importDefault(require("stream"));
|
|
28
28
|
const logging_1 = require("../../utils/logging");
|
|
29
29
|
const annotate_1 = require("./annotate");
|
|
30
|
+
const autofix_1 = require("./autofix");
|
|
30
31
|
const eslint_1 = require("./eslint");
|
|
31
32
|
const prettier_1 = require("./prettier");
|
|
32
33
|
const tsc_1 = require("./tsc");
|
|
@@ -106,6 +107,11 @@ const externalLint = (input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
106
107
|
logging_1.log.newline();
|
|
107
108
|
logging_1.log.err(`${tools.join(', ')} found issues that require triage.`);
|
|
108
109
|
process.exitCode = 1;
|
|
110
|
+
if (eslint.ok && prettier.ok) {
|
|
111
|
+
// If these are fine then the issue lies with tsc, which we can't autofix.
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
yield (0, autofix_1.autofix)(input);
|
|
109
115
|
});
|
|
110
116
|
exports.externalLint = externalLint;
|
|
111
117
|
//# sourceMappingURL=external.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cli/lint/external.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cli/lint/external.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/node.js
CHANGED
|
@@ -50,13 +50,16 @@ const node = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
50
50
|
});
|
|
51
51
|
// Run a script with plain `node` to support inspector options.
|
|
52
52
|
// https://github.com/TypeStrong/ts-node#programmatic
|
|
53
|
-
return exec('node', ...args.node, '--require', 'tsconfig-paths/register', '--require', 'ts-node/register/transpile-only',
|
|
53
|
+
return exec('node', ...args.node, '--require', 'dotenv/config', '--require', 'tsconfig-paths/register', '--require', 'ts-node/register/transpile-only',
|
|
54
|
+
// Override dangerously warn-only default on Node.js <15 so that we
|
|
55
|
+
// predictably return a non-zero exit code on an unhandled rejection.
|
|
56
|
+
'--unhandled-rejections=throw', path_1.default.join(__dirname, '..', 'wrapper'), ...args.script);
|
|
54
57
|
}
|
|
55
58
|
// REPL with `ts-node` to support import statements.
|
|
56
59
|
return tsNode
|
|
57
60
|
.createRepl({
|
|
58
61
|
service: tsNode.register({
|
|
59
|
-
require: ['tsconfig-paths/register'],
|
|
62
|
+
require: ['dotenv/config', 'tsconfig-paths/register'],
|
|
60
63
|
transpileOnly: true,
|
|
61
64
|
}),
|
|
62
65
|
})
|
package/lib/cli/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/cli/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,wDAA+B;AAC/B,gDAAkC;AAElC,wCAA6C;AAC7C,wCAA2C;AAC3C,oDAA+C;AAExC,MAAM,IAAI,GAAG,GAAS,EAAE;IAC7B,MAAM,IAAI,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAC;IAEtC,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;YACtB,GAAG,EAAE;gBACH,mBAAmB,EAAE,IAAI,CAAC,UAAU;gBACpC,YAAY,EAAE,MAAM,CAAC,IAAA,qBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;aACtE;SACF,CAAC,CAAC;QAEH,+DAA+D;QAC/D,qDAAqD;QACrD,OAAO,IAAI,CACT,MAAM,EACN,GAAG,IAAI,CAAC,IAAI,EACZ,WAAW,EACX,yBAAyB,EACzB,WAAW,EACX,iCAAiC,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/cli/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,wDAA+B;AAC/B,gDAAkC;AAElC,wCAA6C;AAC7C,wCAA2C;AAC3C,oDAA+C;AAExC,MAAM,IAAI,GAAG,GAAS,EAAE;IAC7B,MAAM,IAAI,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAC;IAEtC,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;YACtB,GAAG,EAAE;gBACH,mBAAmB,EAAE,IAAI,CAAC,UAAU;gBACpC,YAAY,EAAE,MAAM,CAAC,IAAA,qBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;aACtE;SACF,CAAC,CAAC;QAEH,+DAA+D;QAC/D,qDAAqD;QACrD,OAAO,IAAI,CACT,MAAM,EACN,GAAG,IAAI,CAAC,IAAI,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,yBAAyB,EACzB,WAAW,EACX,iCAAiC;QACjC,mEAAmE;QACnE,qEAAqE;QACrE,8BAA8B,EAC9B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,EACrC,GAAG,IAAI,CAAC,MAAM,CACf,CAAC;KACH;IAED,oDAAoD;IACpD,OAAO,MAAM;SACV,UAAU,CAAC;QACV,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;YACvB,OAAO,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;YACrD,aAAa,EAAE,IAAI;SACpB,CAAC;KACH,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC,CAAA,CAAC;AAzCW,QAAA,IAAI,QAyCf"}
|
package/lib/cli/start.js
CHANGED
|
@@ -20,20 +20,19 @@ const exec_1 = require("../utils/exec");
|
|
|
20
20
|
const manifest_1 = require("../utils/manifest");
|
|
21
21
|
const validation_1 = require("../utils/validation");
|
|
22
22
|
const start = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
var _a;
|
|
23
24
|
const [args, availablePort] = yield Promise.all([
|
|
24
25
|
(0, args_1.parseRunArgs)(process.argv.slice(2)),
|
|
25
26
|
(0, get_port_1.default)(),
|
|
26
27
|
]);
|
|
27
|
-
|
|
28
|
-
args.entryPoint = yield (0, manifest_1.getEntryPointFromManifest)();
|
|
29
|
-
}
|
|
28
|
+
(_a = args.entryPoint) !== null && _a !== void 0 ? _a : (args.entryPoint = yield (0, manifest_1.getEntryPointFromManifest)());
|
|
30
29
|
const execProcess = (0, exec_1.createExec)({
|
|
31
30
|
env: {
|
|
32
31
|
__SKUBA_ENTRY_POINT: args.entryPoint,
|
|
33
32
|
__SKUBA_PORT: String((0, validation_1.isIpPort)(args.port) ? args.port : availablePort),
|
|
34
33
|
},
|
|
35
34
|
});
|
|
36
|
-
return execProcess('ts-node-dev', ...args.node, '--require', 'tsconfig-paths/register', '--respawn', '--transpile-only', path_1.default.join(__dirname, '..', 'wrapper'), ...args.script);
|
|
35
|
+
return execProcess('ts-node-dev', ...args.node, '--require', 'dotenv/config', '--require', 'tsconfig-paths/register', '--respawn', '--transpile-only', path_1.default.join(__dirname, '..', 'wrapper'), ...args.script);
|
|
37
36
|
});
|
|
38
37
|
exports.start = start;
|
|
39
38
|
//# sourceMappingURL=start.js.map
|
package/lib/cli/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,wDAA+B;AAE/B,wCAA6C;AAC7C,wCAA2C;AAC3C,gDAA8D;AAC9D,oDAA+C;AAExC,MAAM,KAAK,GAAG,GAAS,EAAE
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,wDAA+B;AAE/B,wCAA6C;AAC7C,wCAA2C;AAC3C,gDAA8D;AAC9D,oDAA+C;AAExC,MAAM,KAAK,GAAG,GAAS,EAAE;;IAC9B,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,IAAA,mBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,IAAA,kBAAO,GAAE;KACV,CAAC,CAAC;IAEH,MAAA,IAAI,CAAC,UAAU,oCAAf,IAAI,CAAC,UAAU,GAAK,MAAM,IAAA,oCAAyB,GAAE,EAAC;IAEtD,MAAM,WAAW,GAAG,IAAA,iBAAU,EAAC;QAC7B,GAAG,EAAE;YACH,mBAAmB,EAAE,IAAI,CAAC,UAAU;YACpC,YAAY,EAAE,MAAM,CAAC,IAAA,qBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;SACtE;KACF,CAAC,CAAC;IAEH,OAAO,WAAW,CAChB,aAAa,EACb,GAAG,IAAI,CAAC,IAAI,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,yBAAyB,EACzB,WAAW,EACX,kBAAkB,EAClB,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,EACrC,GAAG,IAAI,CAAC,MAAM,CACf,CAAC;AACJ,CAAC,CAAA,CAAC;AA3BW,QAAA,KAAK,SA2BhB"}
|
package/lib/utils/env.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCiEnv = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the code is executing in a CI environment.
|
|
6
|
+
*/
|
|
7
|
+
const isCiEnv = (env = process.env) => Boolean(env.BUILDKITE || env.CI || env.GITHUB_ACTIONS);
|
|
8
|
+
exports.isCiEnv = isCiEnv;
|
|
9
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAW,EAAE,CACpD,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;AAD5C,QAAA,OAAO,WACqC"}
|
package/package.json
CHANGED
|
@@ -1,76 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "skuba",
|
|
3
|
-
"description": "Toolkit for backend TypeScript development",
|
|
4
2
|
"bin": {
|
|
5
3
|
"skuba": "lib/skuba.js"
|
|
6
4
|
},
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
},
|
|
10
|
-
"version": "4.0.0",
|
|
11
|
-
"main": "lib/index.js",
|
|
12
|
-
"typings": "lib/index.d.ts",
|
|
13
|
-
"files": [
|
|
14
|
-
"config/**/*",
|
|
15
|
-
"jest/**/*",
|
|
16
|
-
"lib*/**/*.d.ts",
|
|
17
|
-
"lib*/**/*.js",
|
|
18
|
-
"lib*/**/*.js.map",
|
|
19
|
-
"template/**/*",
|
|
20
|
-
"jest-preset.js"
|
|
21
|
-
],
|
|
22
|
-
"sideEffects": false,
|
|
23
|
-
"license": "MIT",
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "ts-node --transpile-only src/skuba build && scripts/postbuild.sh",
|
|
26
|
-
"changeset:add": "changeset add && prettier --loglevel silent --write '.changeset/*.md'",
|
|
27
|
-
"deploy": "scripts/deploy.sh",
|
|
28
|
-
"format": "yarn skuba format",
|
|
29
|
-
"lint": "yarn skuba lint",
|
|
30
|
-
"release": "yarn build && changeset publish",
|
|
31
|
-
"stage": "changeset version && yarn format",
|
|
32
|
-
"skuba": "yarn build && node lib/skuba",
|
|
33
|
-
"test": "yarn skuba test",
|
|
34
|
-
"test:ci": "yarn skuba test --config jest.config.int.ts --runInBand",
|
|
35
|
-
"test:int": "yarn skuba test --config jest.config.int.ts --runInBand",
|
|
36
|
-
"test:template": "scripts/test-template.sh",
|
|
37
|
-
"test:watch": "yarn skuba test --config jest.config.int.ts --runInBand --watch"
|
|
38
|
-
},
|
|
39
|
-
"repository": {
|
|
40
|
-
"type": "git",
|
|
41
|
-
"url": "https://github.com/seek-oss/skuba.git"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {
|
|
44
|
-
"@changesets/cli": "2.19.0",
|
|
45
|
-
"@changesets/get-github-info": "0.5.0",
|
|
46
|
-
"@jest/reporters": "27.4.6",
|
|
47
|
-
"@types/ejs": "3.1.0",
|
|
48
|
-
"@types/express": "4.17.13",
|
|
49
|
-
"@types/fs-extra": "9.0.13",
|
|
50
|
-
"@types/koa": "2.13.4",
|
|
51
|
-
"@types/lodash.mergewith": "4.6.6",
|
|
52
|
-
"@types/module-alias": "2.0.1",
|
|
53
|
-
"@types/npm-which": "3.0.1",
|
|
54
|
-
"@types/picomatch": "2.3.0",
|
|
55
|
-
"@types/supertest": "2.0.11",
|
|
56
|
-
"express": "4.17.2",
|
|
57
|
-
"jsonfile": "6.1.0",
|
|
58
|
-
"koa": "2.13.4",
|
|
59
|
-
"memfs": "3.4.1",
|
|
60
|
-
"semver": "7.3.5",
|
|
61
|
-
"supertest": "6.2.1",
|
|
62
|
-
"type-fest": "2.9.0"
|
|
5
|
+
"bugs": {
|
|
6
|
+
"url": "https://github.com/seek-oss/skuba/issues"
|
|
63
7
|
},
|
|
64
8
|
"dependencies": {
|
|
65
9
|
"@octokit/rest": "^18.12.0",
|
|
66
10
|
"@octokit/types": "^6.34.0",
|
|
67
11
|
"@types/jest": "^27.4.0",
|
|
12
|
+
"@types/node": ">=14.18",
|
|
68
13
|
"chalk": "^4.1.0",
|
|
69
14
|
"concurrently": "^7.0.0",
|
|
15
|
+
"dotenv": "^16.0.0",
|
|
70
16
|
"ejs": "^3.1.6",
|
|
71
17
|
"enquirer": "^2.3.6",
|
|
72
18
|
"eslint": "^7.27.0",
|
|
73
|
-
"eslint-config-skuba": "1.0.
|
|
19
|
+
"eslint-config-skuba": "1.0.15",
|
|
74
20
|
"execa": "^5.0.0",
|
|
75
21
|
"fdir": "^5.0.0",
|
|
76
22
|
"fs-extra": "^10.0.0",
|
|
@@ -82,11 +28,11 @@
|
|
|
82
28
|
"jest": "^27.4.5",
|
|
83
29
|
"latest-version": "^5.1.0",
|
|
84
30
|
"lodash.mergewith": "^4.6.2",
|
|
85
|
-
"normalize-package-data": "^
|
|
31
|
+
"normalize-package-data": "^4.0.0",
|
|
86
32
|
"npm-run-path": "^4.0.1",
|
|
87
33
|
"npm-which": "^3.0.1",
|
|
88
34
|
"picomatch": "^2.2.2",
|
|
89
|
-
"prettier": "~2.
|
|
35
|
+
"prettier": "~2.6.0",
|
|
90
36
|
"read-pkg-up": "^7.0.1",
|
|
91
37
|
"runtypes": "^6.0.0",
|
|
92
38
|
"semantic-release": "^19.0.0",
|
|
@@ -94,12 +40,50 @@
|
|
|
94
40
|
"simple-git": "^3.0.0",
|
|
95
41
|
"strip-ansi": "^6.0.1",
|
|
96
42
|
"ts-jest": "^27.1.2",
|
|
97
|
-
"ts-node": "^
|
|
98
|
-
"ts-node-dev": "^
|
|
43
|
+
"ts-node": "^10.5.0",
|
|
44
|
+
"ts-node-dev": "^2.0.0-0",
|
|
99
45
|
"tsconfig-paths": "^3.11.0",
|
|
100
46
|
"tsconfig-seek": "1.0.2",
|
|
101
47
|
"typescript": "~4.4.4"
|
|
102
48
|
},
|
|
49
|
+
"description": "SEEK development toolkit for backend applications and packages",
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@changesets/cli": "2.21.1",
|
|
52
|
+
"@changesets/get-github-info": "0.5.0",
|
|
53
|
+
"@jest/reporters": "27.5.1",
|
|
54
|
+
"@types/ejs": "3.1.0",
|
|
55
|
+
"@types/express": "4.17.13",
|
|
56
|
+
"@types/fs-extra": "9.0.13",
|
|
57
|
+
"@types/koa": "2.13.4",
|
|
58
|
+
"@types/lodash.mergewith": "4.6.6",
|
|
59
|
+
"@types/module-alias": "2.0.1",
|
|
60
|
+
"@types/npm-which": "3.0.1",
|
|
61
|
+
"@types/picomatch": "2.3.0",
|
|
62
|
+
"@types/supertest": "2.0.11",
|
|
63
|
+
"express": "4.17.3",
|
|
64
|
+
"jsonfile": "6.1.0",
|
|
65
|
+
"koa": "2.13.4",
|
|
66
|
+
"memfs": "3.4.1",
|
|
67
|
+
"semver": "7.3.5",
|
|
68
|
+
"supertest": "6.2.2",
|
|
69
|
+
"type-fest": "2.12.0"
|
|
70
|
+
},
|
|
71
|
+
"engines": {
|
|
72
|
+
"node": ">=14.18"
|
|
73
|
+
},
|
|
74
|
+
"files": [
|
|
75
|
+
"config/**/*",
|
|
76
|
+
"jest/**/*",
|
|
77
|
+
"lib*/**/*.d.ts",
|
|
78
|
+
"lib*/**/*.js",
|
|
79
|
+
"lib*/**/*.js.map",
|
|
80
|
+
"template/**/*",
|
|
81
|
+
"jest-preset.js"
|
|
82
|
+
],
|
|
83
|
+
"homepage": "https://github.com/seek-oss/skuba#readme",
|
|
84
|
+
"license": "MIT",
|
|
85
|
+
"main": "lib/index.js",
|
|
86
|
+
"name": "skuba",
|
|
103
87
|
"peerDependencies": {
|
|
104
88
|
"skuba-dive": "1 || 2"
|
|
105
89
|
},
|
|
@@ -108,7 +92,37 @@
|
|
|
108
92
|
"optional": true
|
|
109
93
|
}
|
|
110
94
|
},
|
|
95
|
+
"private": false,
|
|
96
|
+
"repository": {
|
|
97
|
+
"type": "git",
|
|
98
|
+
"url": "git+https://github.com/seek-oss/skuba.git"
|
|
99
|
+
},
|
|
111
100
|
"resolutions": {
|
|
101
|
+
"**/@types/node": ">=14.18",
|
|
112
102
|
"semantic-release/@semantic-release/npm/npm/**/ansi-regex": "5.0.1"
|
|
113
|
-
}
|
|
103
|
+
},
|
|
104
|
+
"scripts": {
|
|
105
|
+
"build": "ts-node --transpile-only src/skuba build && scripts/postbuild.sh",
|
|
106
|
+
"changeset:add": "changeset add && prettier --loglevel silent --write '.changeset/*.md'",
|
|
107
|
+
"deploy": "scripts/deploy.sh",
|
|
108
|
+
"format": "yarn skuba format",
|
|
109
|
+
"lint": "yarn skuba lint",
|
|
110
|
+
"release": "yarn build && changeset publish",
|
|
111
|
+
"stage": "changeset version && yarn format",
|
|
112
|
+
"skuba": "yarn build && node lib/skuba",
|
|
113
|
+
"test": "yarn skuba test",
|
|
114
|
+
"test:ci": "yarn skuba test --config jest.config.int.ts --runInBand",
|
|
115
|
+
"test:int": "yarn skuba test --config jest.config.int.ts --runInBand",
|
|
116
|
+
"test:template": "scripts/test-template.sh",
|
|
117
|
+
"test:watch": "yarn skuba test --config jest.config.int.ts --runInBand --watch"
|
|
118
|
+
},
|
|
119
|
+
"sideEffects": false,
|
|
120
|
+
"skuba": {
|
|
121
|
+
"entryPoint": "src/index.ts",
|
|
122
|
+
"template": null,
|
|
123
|
+
"type": "package",
|
|
124
|
+
"version": "4.0.0"
|
|
125
|
+
},
|
|
126
|
+
"types": "./lib/index.d.ts",
|
|
127
|
+
"version": "4.2.0-beta.0"
|
|
114
128
|
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- &dev
|
|
4
|
-
agents:
|
|
5
|
-
queue: <%- devBuildkiteQueueName %>
|
|
6
|
-
|
|
7
|
-
- &prod
|
|
8
|
-
agents:
|
|
9
|
-
queue: <%- prodBuildkiteQueueName %>
|
|
1
|
+
agents:
|
|
2
|
+
queue: <%- prodBuildkiteQueueName %>
|
|
10
3
|
|
|
4
|
+
configs:
|
|
11
5
|
plugins:
|
|
12
6
|
- &aws-sm
|
|
13
7
|
seek-oss/aws-sm#v2.3.1:
|
|
@@ -36,8 +30,7 @@ configs:
|
|
|
36
30
|
permit_on_passed: true
|
|
37
31
|
|
|
38
32
|
steps:
|
|
39
|
-
-
|
|
40
|
-
label: ๐งโโ๏ธ Warm Prod
|
|
33
|
+
- label: ๐งโโ๏ธ Warm Prod
|
|
41
34
|
command: ':'
|
|
42
35
|
key: warm-prod
|
|
43
36
|
plugins:
|
|
@@ -45,8 +38,7 @@ steps:
|
|
|
45
38
|
- *private-npm
|
|
46
39
|
- *docker-ecr-cache
|
|
47
40
|
|
|
48
|
-
-
|
|
49
|
-
label: ๐งช Test & Lint
|
|
41
|
+
- label: ๐งช Test & Lint
|
|
50
42
|
commands:
|
|
51
43
|
- echo '+++ yarn test:ci'
|
|
52
44
|
- yarn test:ci
|
|
@@ -62,14 +54,13 @@ steps:
|
|
|
62
54
|
- docker-compose#v3.9.0:
|
|
63
55
|
run: app
|
|
64
56
|
|
|
65
|
-
-
|
|
66
|
-
label: ๐ฆ Build & Package
|
|
57
|
+
- label: ๐ฆ Build & Package
|
|
67
58
|
depends_on: warm-prod
|
|
68
59
|
plugins:
|
|
69
60
|
- *aws-sm
|
|
70
61
|
- *private-npm
|
|
71
62
|
- *docker-ecr-cache
|
|
72
|
-
- seek-jobs/gantry#v1.6.
|
|
63
|
+
- seek-jobs/gantry#v1.6.2:
|
|
73
64
|
command: build
|
|
74
65
|
file: gantry.build.yml
|
|
75
66
|
region: <%- region %>
|
|
@@ -79,13 +70,14 @@ steps:
|
|
|
79
70
|
- block: ๐๐ปโโ๏ธ Deploy Dev
|
|
80
71
|
branches: '!${BUILDKITE_PIPELINE_DEFAULT_BRANCH}'
|
|
81
72
|
|
|
82
|
-
- <<: *
|
|
83
|
-
|
|
73
|
+
- <<: *deploy
|
|
74
|
+
agents:
|
|
75
|
+
queue: <%- devBuildkiteQueueName %>
|
|
84
76
|
label: ๐ค Deploy Dev
|
|
85
77
|
concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
|
|
86
78
|
key: deploy-dev
|
|
87
79
|
plugins:
|
|
88
|
-
- seek-jobs/gantry#v1.6.
|
|
80
|
+
- seek-jobs/gantry#v1.6.2:
|
|
89
81
|
command: apply
|
|
90
82
|
environment: <%- devGantryEnvironmentName %>
|
|
91
83
|
file: gantry.apply.yml
|
|
@@ -94,14 +86,13 @@ steps:
|
|
|
94
86
|
- .gantry/common.yml
|
|
95
87
|
- .gantry/dev.yml
|
|
96
88
|
|
|
97
|
-
- <<: *
|
|
98
|
-
<<: *deploy
|
|
89
|
+
- <<: *deploy
|
|
99
90
|
label: ๐ Deploy Prod
|
|
100
91
|
branches: ${BUILDKITE_PIPELINE_DEFAULT_BRANCH}
|
|
101
92
|
concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
|
|
102
93
|
depends_on: deploy-dev
|
|
103
94
|
plugins:
|
|
104
|
-
- seek-jobs/gantry#v1.6.
|
|
95
|
+
- seek-jobs/gantry#v1.6.2:
|
|
105
96
|
command: apply
|
|
106
97
|
environment: <%- prodGantryEnvironmentName %>
|
|
107
98
|
file: gantry.apply.yml
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ENVIRONMENT=local
|
|
@@ -3,11 +3,13 @@ version: '3.7'
|
|
|
3
3
|
services:
|
|
4
4
|
app:
|
|
5
5
|
environment:
|
|
6
|
-
# Enable Buildkite + GitHub
|
|
6
|
+
# Enable Buildkite + GitHub integrations.
|
|
7
7
|
- BUILDKITE
|
|
8
8
|
- BUILDKITE_AGENT_ACCESS_TOKEN
|
|
9
|
+
- BUILDKITE_BRANCH
|
|
9
10
|
- BUILDKITE_BUILD_NUMBER
|
|
10
11
|
- BUILDKITE_JOB_ID
|
|
12
|
+
- BUILDKITE_PIPELINE_DEFAULT_BRANCH
|
|
11
13
|
- BUILDKITE_STEP_ID
|
|
12
14
|
- GITHUB_API_TOKEN
|
|
13
15
|
image: ${BUILDKITE_PLUGIN_DOCKER_IMAGE:-''}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"dependencies": {
|
|
3
3
|
"@seek/logger": "^5.0.1",
|
|
4
4
|
"express": "^4.17.1",
|
|
5
|
-
"skuba-dive": "^
|
|
5
|
+
"skuba-dive": "^2.0.0"
|
|
6
6
|
},
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"@types/express": "^4.17.13",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build": "skuba build",
|
|
22
22
|
"format": "skuba format",
|
|
23
23
|
"lint": "skuba lint",
|
|
24
|
-
"start": "
|
|
24
|
+
"start": "skuba start --port <%- port %>",
|
|
25
25
|
"start:debug": "yarn start --inspect-brk",
|
|
26
26
|
"test": "skuba test",
|
|
27
27
|
"test:ci": "skuba test --coverage",
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- &prod
|
|
4
|
-
agents:
|
|
5
|
-
queue: <%- prodBuildkiteQueueName %>
|
|
6
|
-
env:
|
|
7
|
-
ENVIRONMENT: prod
|
|
1
|
+
agents:
|
|
2
|
+
queue: <%- prodBuildkiteQueueName %>
|
|
8
3
|
|
|
4
|
+
configs:
|
|
9
5
|
plugins:
|
|
10
6
|
- &aws-sm
|
|
11
7
|
seek-oss/aws-sm#v2.3.1:
|
|
@@ -24,8 +20,7 @@ configs:
|
|
|
24
20
|
env: NPM_READ_TOKEN
|
|
25
21
|
|
|
26
22
|
steps:
|
|
27
|
-
-
|
|
28
|
-
label: ๐งช Test & Lint
|
|
23
|
+
- label: ๐งช Test & Lint
|
|
29
24
|
commands:
|
|
30
25
|
- echo '+++ yarn test:ci'
|
|
31
26
|
- yarn test:ci
|
|
@@ -3,11 +3,13 @@ version: '3.7'
|
|
|
3
3
|
services:
|
|
4
4
|
app:
|
|
5
5
|
environment:
|
|
6
|
-
# Enable Buildkite + GitHub
|
|
6
|
+
# Enable Buildkite + GitHub integrations.
|
|
7
7
|
- BUILDKITE
|
|
8
8
|
- BUILDKITE_AGENT_ACCESS_TOKEN
|
|
9
|
+
- BUILDKITE_BRANCH
|
|
9
10
|
- BUILDKITE_BUILD_NUMBER
|
|
10
11
|
- BUILDKITE_JOB_ID
|
|
12
|
+
- BUILDKITE_PIPELINE_DEFAULT_BRANCH
|
|
11
13
|
- BUILDKITE_STEP_ID
|
|
12
14
|
- GITHUB_API_TOKEN
|
|
13
15
|
image: ${BUILDKITE_PLUGIN_DOCKER_IMAGE:-''}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"skuba-dive": "^
|
|
3
|
+
"skuba-dive": "^2.0.0"
|
|
4
4
|
},
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@types/node": "^16.0.0",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"build": "skuba build",
|
|
16
16
|
"format": "skuba format",
|
|
17
17
|
"lint": "skuba lint",
|
|
18
|
-
"start": "
|
|
18
|
+
"start": "skuba start",
|
|
19
19
|
"start:debug": "yarn start --inspect-brk",
|
|
20
20
|
"test": "skuba test",
|
|
21
21
|
"test:ci": "skuba test --coverage",
|