diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b23d9d78..491a8618 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,16 @@ repos: hooks: - id: tsc name: Compile Typescript - entry: 'npm run tsc' + entry: 'npm run build' language: node - types_or: [ts, tsx] - stages: [commit] \ No newline at end of file + stages: [ commit ] + types: [ ts ] + pass_filenames: false + - repo: local + hooks: + - id: add-dist + name: Add dist folder + entry: 'git add dist' + language: system + stages: [ commit ] + always_run: true \ No newline at end of file diff --git a/dist/action.js b/dist/action.js new file mode 100644 index 00000000..ac778d33 --- /dev/null +++ b/dist/action.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const index_1 = __importDefault(require("./index")); +(0, index_1.default)(); +//# sourceMappingURL=action.js.map \ No newline at end of file diff --git a/dist/action.js.map b/dist/action.js.map new file mode 100644 index 00000000..83018f7e --- /dev/null +++ b/dist/action.js.map @@ -0,0 +1 @@ +{"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":";;;;;AAAA,oDAAgC;AAEhC,IAAA,eAAS,GAAE,CAAC"} \ No newline at end of file diff --git a/dist/commitlint.js b/dist/commitlint.js new file mode 100644 index 00000000..3fa56ba0 --- /dev/null +++ b/dist/commitlint.js @@ -0,0 +1,53 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const load_1 = __importDefault(require("@commitlint/load")); +const read_1 = __importDefault(require("@commitlint/read")); +const lint_1 = __importDefault(require("@commitlint/lint")); +const format_1 = __importDefault(require("@commitlint/format")); +const core_1 = require("@actions/core"); +/** + * Run commitlint and print the formatted results. + * Also print the number of errors and warnings found. + * @throws If any of the commits are invalid. + */ +exports.default = (args) => __awaiter(void 0, void 0, void 0, function* () { + const [config, commits] = yield Promise.all([ + (0, load_1.default)(undefined, args), + (0, read_1.default)(args), + ]); + const { rules, parserPreset = {} } = config; + const { parserOpts } = parserPreset; + const options = parserOpts ? { parserOpts } : {}; + const lintOutcomes = commits.map(commit => (0, lint_1.default)(commit, rules, options)); + const results = yield Promise.all(lintOutcomes); + const formatted = (0, format_1.default)({ results }, { color: true, verbose: true }); + (0, core_1.info)(formatted); + const warnings = []; + const errors = []; + results.forEach(result => { + warnings.push(...(result.warnings || [])); + errors.push(...(result.errors || [])); + }); + if (!!warnings.length) { + (0, core_1.warning)(`${warnings.length} warning(s) found.`); + } + if (!!errors.length) { + (0, core_1.error)(`${errors.length} error(s) found.`); + } + if (results.some(result => !result.valid)) { + throw new Error("Commit validation failed."); + } +}); +//# sourceMappingURL=commitlint.js.map \ No newline at end of file diff --git a/dist/commitlint.js.map b/dist/commitlint.js.map new file mode 100644 index 00000000..9c351cd1 --- /dev/null +++ b/dist/commitlint.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commitlint.js","sourceRoot":"","sources":["../src/commitlint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AACpC,4DAAoC;AACpC,4DAAoC;AACpC,gEAAwC;AACxC,wCAAmD;AAEnD;;;;GAIG;AACH,kBAAe,CAAO,IAA6B,EAAE,EAAE;IACnD,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,IAAA,cAAI,EAAC,SAAS,EAAE,IAAI,CAAC;QACrB,IAAA,cAAI,EAAC,IAAI,CAAC;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAElD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,cAAI,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvE,IAAA,WAAI,EAAC,SAAS,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE;QACnB,IAAA,cAAO,EAAC,GAAG,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC;KACnD;IAED,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACjB,IAAA,YAAK,EAAC,GAAG,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC;KAC7C;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAChD;AACL,CAAC,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..dcb0ab90 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,39 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +const validateCommits_1 = __importDefault(require("./validateCommits")); +const preinstall_1 = __importDefault(require("./preinstall")); +const core_1 = require("@actions/core"); +exports.default = () => __awaiter(void 0, void 0, void 0, function* () { + const { INPUT_BASE_REF: source, INPUT_HEAD_REF: destination, INPUT_TARGET_REF: target, INPUT_EXTRA_CONFIG: extraConfig, } = process.env; + try { + (0, preinstall_1.default)(extraConfig); + if (source) { + (0, child_process_1.execSync)(`git checkout '${source}'`); + } + if (destination) { + (0, child_process_1.execSync)(`git checkout '${destination}'`); + } + yield (0, validateCommits_1.default)({ + source, + destination, + target, + }); + } + catch (e) { + (0, core_1.setFailed)(e.message); + } +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 00000000..bcbf90ea --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAAyC;AACzC,wEAAgD;AAChD,8DAAsC;AACtC,wCAA0C;AAE1C,kBAAe,GAAS,EAAE;IACtB,MAAM,EACF,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,WAAW,EAC3B,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,WAAW,GAClC,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhB,IAAI;QACA,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC;QAExB,IAAI,MAAM,EAAE;YACR,IAAA,wBAAQ,EAAC,iBAAiB,MAAM,GAAG,CAAC,CAAC;SACxC;QAED,IAAI,WAAW,EAAE;YACb,IAAA,wBAAQ,EAAC,iBAAiB,WAAW,GAAG,CAAC,CAAC;SAC7C;QAED,MAAM,IAAA,yBAAe,EAAC;YAClB,MAAM;YACN,WAAW;YACX,MAAM;SACT,CAAC,CAAC;KACN;IAAC,OAAO,CAAC,EAAE;QACR,IAAA,gBAAS,EAAE,CAAW,CAAC,OAAO,CAAC,CAAC;KACnC;AACL,CAAC,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/index.test.js b/dist/index.test.js new file mode 100644 index 00000000..fcfe2bc3 --- /dev/null +++ b/dist/index.test.js @@ -0,0 +1,83 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +const actions = __importStar(require("@actions/core")); +const util_1 = __importDefault(require("./test/util")); +const index_1 = __importDefault(require("./index")); +describe("src/index", () => { + let tmpDir; + const actionsInfo = jest.spyOn(actions, "info"); + const setFailed = jest.spyOn(actions, "setFailed"); + const { createTempDirectory, intializeGitRepo, getNthCommitBack, teardownGitRepo, teardownTestDirectory, addInvalidCommit, addValidCommit, setupTestDirectory, options, } = new util_1.default(); + beforeEach(() => { + tmpDir = createTempDirectory(); + setupTestDirectory(tmpDir); + intializeGitRepo(); + process.env.INPUT_EXTRA_CONFIG = "\"@joberstein12/commitlint-config\""; + process.env.INPUT_TARGET_REF = getNthCommitBack(1); + }); + afterEach(() => { + teardownGitRepo(); + teardownTestDirectory(tmpDir); + delete process.env.INPUT_TARGET_REF; + delete process.env.INPUT_BASE_REF; + delete process.env.INPUT_HEAD_REF; + delete process.env.INPUT_EXTRA_CONFIG; + expect(actionsInfo).toHaveBeenCalled(); + }); + it("Successfully validates a target commit", () => __awaiter(void 0, void 0, void 0, function* () { + yield (0, index_1.default)(); + expect(setFailed).not.toHaveBeenCalled(); + })); + it("Successfully validates a range of commits", () => __awaiter(void 0, void 0, void 0, function* () { + process.env.INPUT_BASE_REF = "master"; + process.env.INPUT_HEAD_REF = "#3"; + (0, child_process_1.execSync)(`git checkout -qb '${process.env.INPUT_HEAD_REF}'`, options); + [...Array(3).keys()].forEach(addValidCommit); + process.env.INPUT_TARGET_REF = getNthCommitBack(1); + yield (0, index_1.default)(); + expect(setFailed).not.toHaveBeenCalled(); + })); + it("Fails validation for an invalid commit", () => __awaiter(void 0, void 0, void 0, function* () { + addInvalidCommit(); + process.env.INPUT_TARGET_REF = getNthCommitBack(1); + yield (0, index_1.default)(); + expect(setFailed).toHaveBeenCalledWith('Commit validation failed.'); + })); +}); +//# sourceMappingURL=index.test.js.map \ No newline at end of file diff --git a/dist/index.test.js.map b/dist/index.test.js.map new file mode 100644 index 00000000..c8a217f6 --- /dev/null +++ b/dist/index.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAyC;AACzC,uDAAyC;AACzC,uDAAoC;AACpC,oDAA0B;AAE1B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,IAAI,MAAc,CAAC;IAEnB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnD,MAAM,EACF,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,OAAO,GACV,GAAG,IAAI,cAAS,EAAE,CAAC;IAEpB,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,GAAG,mBAAmB,EAAE,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,gBAAgB,EAAE,CAAC;QAEnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,qCAAqC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,eAAe,EAAE,CAAC;QAClB,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAEtC,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACpD,MAAM,IAAA,eAAG,GAAE,CAAC;QACZ,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAS,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAElC,IAAA,wBAAQ,EAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,OAAO,CAAC,CAAC;QACtE,CAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEnD,MAAM,IAAA,eAAG,GAAE,CAAC;QACZ,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7C,CAAC,CAAA,CAAC,CAAC;IAGH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACpD,gBAAgB,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEnD,MAAM,IAAA,eAAG,GAAE,CAAC;QACZ,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,CAAC;IACxE,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/preinstall.js b/dist/preinstall.js new file mode 100644 index 00000000..3f75b141 --- /dev/null +++ b/dist/preinstall.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +/** + * Pre-install extra dependencies. + */ +exports.default = (packageString, options) => { + if (!packageString) { + return; + } + const packages = packageString + .replace(/(\n\r?|\s)+/, ' ') + .split(/\s+/) + .map(packageName => packageName.replace(/['"]/g, '')) + .join(' '); + if (packages) { + (0, child_process_1.execSync)(`npm install ${packages} --silent`, options); + } +}; +//# sourceMappingURL=preinstall.js.map \ No newline at end of file diff --git a/dist/preinstall.js.map b/dist/preinstall.js.map new file mode 100644 index 00000000..32444fba --- /dev/null +++ b/dist/preinstall.js.map @@ -0,0 +1 @@ +{"version":3,"file":"preinstall.js","sourceRoot":"","sources":["../src/preinstall.ts"],"names":[],"mappings":";;AAAA,iDAA0D;AAE1D;;GAEG;AACH,kBAAe,CAAC,aAAsB,EAAE,OAAyB,EAAQ,EAAE;IACzE,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,aAAa;SAC3B,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACpD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,QAAQ,EAAE;QACZ,IAAA,wBAAQ,EAAC,eAAe,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAC;KACvD;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/test/util.js b/dist/test/util.js new file mode 100644 index 00000000..d30fa704 --- /dev/null +++ b/dist/test/util.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +class TestUtils { + constructor(encoding = 'utf-8') { + this.originalDirectory = process.cwd(); + this.getNthCommitBack = (numBack) => (0, child_process_1.execSync)(`git rev-parse HEAD~${numBack - 1}`, this.options).trim(); + this.addValidCommit = () => { + const commands = [ + "echo invalid >> src/test.txt", + "git add src", + `git commit -m "chore(ci): Add valid commit."`, + ]; + (0, child_process_1.execSync)(commands.join(" && "), this.options); + }; + this.addInvalidCommit = () => { + const commands = [ + "echo invalid >> src/test.txt", + "git add src", + `git commit -m "Add invalid commit."`, + ]; + (0, child_process_1.execSync)(commands.join(" && "), this.options); + }; + this.createTempDirectory = () => (0, child_process_1.execSync)("mktemp -d", { encoding: this.encoding }).trim(); + this.setupTestDirectory = (tmpDir) => { + (0, child_process_1.execSync)(`cp ${process.cwd()}/.commitlintrc.json ${tmpDir}`); + (0, child_process_1.execSync)(`cp ${process.cwd()}/package*.json ${tmpDir}`); + process.chdir(tmpDir); + (0, child_process_1.execSync)('npm install --frozen-lockfile', this.options); + }; + this.intializeGitRepo = () => { + (0, child_process_1.execSync)([ + "git init", + "rm -rf .git/hooks", + "mkdir src", + "touch src/test.txt", + ].join(" && "), this.options); + [...Array(2).keys()].forEach(this.addValidCommit); + }; + this.teardownGitRepo = () => { + (0, child_process_1.execSync)([ + "rm -rf .git", + "rm -rf src" + ].join(' && '), this.options); + }; + this.teardownTestDirectory = (tmpDir) => { + process.chdir(this.originalDirectory); + (0, child_process_1.execSync)(`rm -rf ${tmpDir}`); + }; + this.encoding = encoding; + this.options = { encoding }; + } +} +exports.default = TestUtils; +//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/dist/test/util.js.map b/dist/test/util.js.map new file mode 100644 index 00000000..85be4dec --- /dev/null +++ b/dist/test/util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/test/util.ts"],"names":[],"mappings":";;AAAA,iDAA4E;AAE5E,MAAqB,SAAS;IAK1B,YAAY,WAA2B,OAAO;QAF9C,sBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAOlC,qBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE,CACnC,IAAA,wBAAQ,EAAC,sBAAsB,OAAO,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvE,mBAAc,GAAG,GAAG,EAAE;YAClB,MAAM,QAAQ,GAAG;gBACb,8BAA8B;gBAC9B,aAAa;gBACb,8CAA8C;aACjD,CAAC;YAEF,IAAA,wBAAQ,EAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACpB,MAAM,QAAQ,GAAG;gBACb,8BAA8B;gBAC9B,aAAa;gBACb,qCAAqC;aACxC,CAAC;YAEF,IAAA,wBAAQ,EAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,wBAAmB,GAAG,GAAG,EAAE,CACvB,IAAA,wBAAQ,EAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9D,uBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;YACpC,IAAA,wBAAQ,EAAC,MAAM,OAAO,CAAC,GAAG,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAC;YAC7D,IAAA,wBAAQ,EAAC,MAAM,OAAO,CAAC,GAAG,EAAE,kBAAkB,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAA,wBAAQ,EAAC,+BAA+B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACpB,IAAA,wBAAQ,EAAC;gBACL,UAAU;gBACV,mBAAmB;gBACnB,WAAW;gBACX,oBAAoB;aACvB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9B,CAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC,CAAA;QAED,oBAAe,GAAG,GAAG,EAAE;YACnB,IAAA,wBAAQ,EAAC;gBACL,aAAa;gBACb,YAAY;aACf,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAA;QAED,0BAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAA,wBAAQ,EAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAA;QA1DG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;CAyDJ;AAjED,4BAiEC"} \ No newline at end of file diff --git a/dist/validateCommits.js b/dist/validateCommits.js new file mode 100644 index 00000000..12917344 --- /dev/null +++ b/dist/validateCommits.js @@ -0,0 +1,44 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +const commitlint_1 = __importDefault(require("./commitlint")); +/** + * Validate all the commits between two refs if possible. If not, validate a target + * commit instead. If the target commit is also absent, validate all commits. + */ +exports.default = ({ target, source, destination }, options) => __awaiter(void 0, void 0, void 0, function* () { + var _a; + const fromCommit = source && destination + ? getCommitFromRange({ source, destination }, options) + : target; + yield (0, commitlint_1.default)({ + from: fromCommit ? `${fromCommit}^` : undefined, + cwd: ((_a = options === null || options === void 0 ? void 0 : options.cwd) === null || _a === void 0 ? void 0 : _a.toString()) || undefined, + }); +}); +/** + * Get the initial commit from two refs. + * @throws if there was an error getting the commit. + */ +const getCommitFromRange = ({ source, destination }, options) => { + const result = (0, child_process_1.execSync)(`git rev-list ${source}..${destination} | tail -n 1`, options) + .toString() + .trim(); + if (!result) { + throw new Error('Failed to get initial commit in the given range.'); + } + return result; +}; +//# sourceMappingURL=validateCommits.js.map \ No newline at end of file diff --git a/dist/validateCommits.js.map b/dist/validateCommits.js.map new file mode 100644 index 00000000..3a4f6260 --- /dev/null +++ b/dist/validateCommits.js.map @@ -0,0 +1 @@ +{"version":3,"file":"validateCommits.js","sourceRoot":"","sources":["../src/validateCommits.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAA0D;AAC1D,8DAAsC;AAGtC;;;GAGG;AACH,kBAAe,CACX,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAuB,EACpD,OAAyB,EAC3B,EAAE;;IACA,MAAM,UAAU,GAAG,MAAM,IAAI,WAAW;QACpC,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC;QACtD,CAAC,CAAC,MAAM,CAAC;IAEb,MAAM,IAAA,oBAAU,EAAC;QACb,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,SAAS;QAC/C,GAAG,EAAE,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,QAAQ,EAAE,KAAI,SAAS;KAC7C,CAAC,CAAC;AACP,CAAC,CAAA,CAAA;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CACvB,EAAE,MAAM,EAAE,WAAW,EAAe,EACpC,OAAyB,EACnB,EAAE;IACR,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,gBAAgB,MAAM,KAAK,WAAW,cAAc,EAAE,OAAO,CAAC;SACjF,QAAQ,EAAE;SACV,IAAI,EAAE,CAAC;IAEZ,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACvE;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/validateCommits.test.js b/dist/validateCommits.test.js new file mode 100644 index 00000000..c6446d8f --- /dev/null +++ b/dist/validateCommits.test.js @@ -0,0 +1,148 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +const actions = __importStar(require("@actions/core")); +const util_1 = __importDefault(require("./test/util")); +const validateCommits_1 = __importDefault(require("./validateCommits")); +const preinstall_1 = __importDefault(require("./preinstall")); +const commitlintExec = __importStar(require("./commitlint")); +describe("src/validateCommits", () => { + const commitlint = jest.spyOn(commitlintExec, 'default'); + const actionsInfo = jest.spyOn(actions, "info"); + const { createTempDirectory, intializeGitRepo, getNthCommitBack, teardownGitRepo, teardownTestDirectory, addInvalidCommit, addValidCommit, setupTestDirectory, options, } = new util_1.default(); + beforeAll(() => { + options.cwd = createTempDirectory(); + setupTestDirectory(options.cwd); + (0, preinstall_1.default)('@joberstein12/commitlint-config', options); + }); + beforeEach(() => { + intializeGitRepo(); + }); + afterEach(() => { + teardownGitRepo(); + }); + afterAll(() => { + teardownTestDirectory(options.cwd); + }); + it("Validates all commits with empty args", () => __awaiter(void 0, void 0, void 0, function* () { + yield expect((0, validateCommits_1.default)({}, options)).resolves.not.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: undefined })); + })); + describe("Validating the target commit", () => { + it("Successfully validates the target commit", () => __awaiter(void 0, void 0, void 0, function* () { + const target = getNthCommitBack(1); + const args = { target }; + yield expect((0, validateCommits_1.default)(args, options)).resolves.not.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: `${target}^` })); + })); + it("Fails when the target commit is invalid", () => __awaiter(void 0, void 0, void 0, function* () { + addInvalidCommit(); + const target = getNthCommitBack(1); + const args = { target }; + yield expect((0, validateCommits_1.default)(args, options)).rejects.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: `${target}^` })); + })); + }); + describe("Validating a range of commits", () => { + beforeEach(() => { + (0, child_process_1.execSync)("git checkout -qb other", options); + [...Array(3).keys()].forEach(addValidCommit); + }); + it("Successfully completes commit validation", () => __awaiter(void 0, void 0, void 0, function* () { + const target = getNthCommitBack(3); + const args = { + source: "master", + destination: "other", + target, + }; + yield expect((0, validateCommits_1.default)(args, options)).resolves.not.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: `${target}^` })); + })); + it("Fails when the commit range is invalid", () => __awaiter(void 0, void 0, void 0, function* () { + addInvalidCommit(); + addValidCommit(); + const target = getNthCommitBack(5); + const args = { + source: "master", + destination: "other", + target, + }; + yield expect((0, validateCommits_1.default)(args, options)).rejects.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: `${target}^` })); + })); + it("Validates the target commit when the source is not known", () => __awaiter(void 0, void 0, void 0, function* () { + const target = getNthCommitBack(1); + const args = { + source: "error", + destination: "master", + target, + }; + yield expect((0, validateCommits_1.default)(args, options)).rejects.toThrow(); + expect(actionsInfo).not.toHaveBeenCalled(); + expect(commitlint).not.toHaveBeenCalled(); + })); + it("Validates the target commit when the destination is not known", () => __awaiter(void 0, void 0, void 0, function* () { + const target = getNthCommitBack(1); + const args = { + source: "other", + destination: "error", + target, + }; + yield expect((0, validateCommits_1.default)(args, options)).rejects.toThrow(); + expect(actionsInfo).not.toHaveBeenCalled(); + expect(commitlint).not.toHaveBeenCalled(); + })); + it("Successfully validates merge commits", () => __awaiter(void 0, void 0, void 0, function* () { + (0, child_process_1.execSync)([ + 'git checkout master', + 'git merge --no-ff other' + ].join(" && "), options); + const target = getNthCommitBack(1); + const args = { target }; + yield expect((0, validateCommits_1.default)(args, options)).resolves.not.toThrow(); + expect(actionsInfo).toHaveBeenCalled(); + expect(commitlint).toHaveBeenCalledWith(expect.objectContaining({ from: `${target}^` })); + })); + }); +}); +//# sourceMappingURL=validateCommits.test.js.map \ No newline at end of file diff --git a/dist/validateCommits.test.js.map b/dist/validateCommits.test.js.map new file mode 100644 index 00000000..343834cf --- /dev/null +++ b/dist/validateCommits.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"validateCommits.test.js","sourceRoot":"","sources":["../src/validateCommits.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 09dd012e..1ba36016 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ export default async () => { } = process.env; try { - preinstall(extraConfig); + preinstall(extraConfig); if (source) { execSync(`git checkout '${source}'`); diff --git a/tsconfig.json b/tsconfig.json index 49172b83..5f88306d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -39,7 +39,7 @@ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ @@ -47,7 +47,7 @@ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + "sourceMap": true, /* Create source map files for emitted JavaScript files. */ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ "outDir": "./dist", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */