@@ -8016,6 +8016,7 @@ var config = (function () {
8016
8016
var branch = ENV.BRANCH;
8017
8017
var folder = ENV.FOLDER;
8018
8018
var squashHistory = ENV.SQUASH_HISTORY === 'true';
8019
+ var skipEmptyCommits = ENV.SKIP_EMPTY_COMMITS === 'true';
8019
8020
var message = ENV.MESSAGE || DEFAULT_MESSAGE;
8020
8021
var tag = ENV.TAG;
8021
8022
// Determine the type of URL
@@ -8030,6 +8031,7 @@ var config = (function () {
8030
8031
branch: branch,
8031
8032
folder: folder,
8032
8033
squashHistory: squashHistory,
8034
+ skipEmptyCommits: skipEmptyCommits,
8033
8035
mode: 'self',
8034
8036
message: message,
8035
8037
tag: tag,
@@ -8045,6 +8047,7 @@ var config = (function () {
8045
8047
branch: branch,
8046
8048
folder: folder,
8047
8049
squashHistory: squashHistory,
8050
+ skipEmptyCommits: skipEmptyCommits,
8048
8051
mode: 'ssh',
8049
8052
parsedUrl: parsedUrl,
8050
8053
privateKey: ENV.SSH_PRIVATE_KEY,
@@ -8085,7 +8088,7 @@ var writeToProcess = function (command, args, opts) { return new Promise(functio
8085
8088
});
8086
8089
}); };
8087
8090
(function () { return __awaiter(void 0, void 0, void 0, function () {
8088
- var TMP_PATH, REPO_TEMP, SSH_AUTH_SOCK, event, _a, _b, name, email, tag, getGitInformation, gitInfo, env, known_hosts, sshAgentMatch, _c, _d, branchCheck, folder, message, forceArg, tagsArg, push;
8091
+ var TMP_PATH, REPO_TEMP, SSH_AUTH_SOCK, event, _a, _b, name, email, tag, getGitInformation, gitInfo, env, known_hosts, sshAgentMatch, _c, _d, branchCheck, folder, message, head, currentCommit, previousCommit, forceArg, tagsArg, push;
8089
8092
var _e, _f;
8090
8093
return __generator(this, function (_g) {
8091
8094
switch (_g.label) {
@@ -8313,21 +8316,51 @@ var writeToProcess = function (command, args, opts) { return new Promise(functio
8313
8316
_g.sent();
8314
8317
_g.label = 30;
8315
8318
case 30:
8319
+ if (!config.skipEmptyCommits) return [3 /*break*/, 34];
8320
+ console.log("##[info] Checking whether contents have changed before pushing");
8321
+ return [4 /*yield*/, isomorphic_git_1.default.resolveRef({
8322
+ fs: fs,
8323
+ dir: REPO_TEMP,
8324
+ ref: 'HEAD'
8325
+ })];
8326
+ case 31:
8327
+ head = _g.sent();
8328
+ return [4 /*yield*/, isomorphic_git_1.default.readCommit({
8329
+ fs: fs,
8330
+ dir: REPO_TEMP,
8331
+ oid: head,
8332
+ })];
8333
+ case 32:
8334
+ currentCommit = _g.sent();
8335
+ if (!(currentCommit.commit.parent.length === 1)) return [3 /*break*/, 34];
8336
+ return [4 /*yield*/, isomorphic_git_1.default.readCommit({
8337
+ fs: fs,
8338
+ dir: REPO_TEMP,
8339
+ oid: currentCommit.commit.parent[0],
8340
+ })];
8341
+ case 33:
8342
+ previousCommit = _g.sent();
8343
+ if (currentCommit.commit.tree === previousCommit.commit.tree) {
8344
+ console.log("##[info] Contents of target repo unchanged, exiting.");
8345
+ return [2 /*return*/];
8346
+ }
8347
+ _g.label = 34;
8348
+ case 34:
8316
8349
console.log("##[info] Pushing");
8317
8350
forceArg = config.squashHistory ? '-f' : '';
8318
8351
tagsArg = tag ? '--tags' : '';
8319
8352
return [4 /*yield*/, exec("git push " + forceArg + " origin \"" + config.branch + "\" " + tagsArg, { env: env, cwd: REPO_TEMP })];
8320
- case 31 :
8353
+ case 35 :
8321
8354
push = _g.sent();
8322
8355
console.log(push.stdout);
8323
8356
console.log("##[info] Deployment Successful");
8324
- if (!(config.mode === 'ssh')) return [3 /*break*/, 33 ];
8357
+ if (!(config.mode === 'ssh')) return [3 /*break*/, 37 ];
8325
8358
console.log("##[info] Killing ssh-agent");
8326
8359
return [4 /*yield*/, exec("ssh-agent -k", { env: env })];
8327
- case 32 :
8360
+ case 36 :
8328
8361
_g.sent();
8329
- _g.label = 33 ;
8330
- case 33 : return [2 /*return*/];
8362
+ _g.label = 37 ;
8363
+ case 37 : return [2 /*return*/];
8331
8364
}
8332
8365
});
8333
8366
}); })().catch(function (err) {
0 commit comments