feat: Add full_commit_message (#275)
* feat: Add full_commit_message * ci: Add full_commit_message * docs: Add full_commit_message cf. #274
This commit is contained in:
@@ -22,6 +22,7 @@ export function showInputs(inps: Inputs): void {
|
||||
[INFO] UserName: ${inps.UserName}
|
||||
[INFO] UserEmail: ${inps.UserEmail}
|
||||
[INFO] CommitMessage: ${inps.CommitMessage}
|
||||
[INFO] FullCommitMessage: ${inps.FullCommitMessage}
|
||||
[INFO] TagName: ${inps.TagName}
|
||||
[INFO] TagMessage: ${inps.TagMessage}
|
||||
[INFO] EnableJekyll (DisableNoJekyll): ${inps.DisableNoJekyll}
|
||||
@@ -61,6 +62,7 @@ export function getInputs(): Inputs {
|
||||
UserName: core.getInput('user_name'),
|
||||
UserEmail: core.getInput('user_email'),
|
||||
CommitMessage: core.getInput('commit_message'),
|
||||
FullCommitMessage: core.getInput('full_commit_message'),
|
||||
TagName: core.getInput('tag_name'),
|
||||
TagMessage: core.getInput('tag_message'),
|
||||
DisableNoJekyll: useBuiltinJekyll,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import * as core from '@actions/core';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as github from '@actions/github';
|
||||
import * as io from '@actions/io';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
@@ -133,26 +132,38 @@ export async function setCommitAuthor(
|
||||
await exec.exec('git', ['config', 'user.email', getUserEmail(userEmail)]);
|
||||
}
|
||||
|
||||
export function getCommitMessage(
|
||||
msg: string,
|
||||
fullMsg: string,
|
||||
extRepo: string,
|
||||
baseRepo: string,
|
||||
hash: string
|
||||
): string {
|
||||
const msgHash = ((): string => {
|
||||
if (extRepo) {
|
||||
return `${baseRepo}@${hash}`;
|
||||
} else {
|
||||
return hash;
|
||||
}
|
||||
})();
|
||||
|
||||
const subject = ((): string => {
|
||||
if (fullMsg) {
|
||||
return fullMsg;
|
||||
} else if (msg) {
|
||||
return `${msg} ${msgHash}`;
|
||||
} else {
|
||||
return `deploy: ${msgHash}`;
|
||||
}
|
||||
})();
|
||||
|
||||
return subject;
|
||||
}
|
||||
|
||||
export async function commit(
|
||||
allowEmptyCommit: boolean,
|
||||
externalRepository: string,
|
||||
message: string
|
||||
msg: string
|
||||
): Promise<void> {
|
||||
let msg = '';
|
||||
if (message) {
|
||||
msg = message;
|
||||
} else {
|
||||
msg = 'deploy:';
|
||||
}
|
||||
|
||||
const hash = `${process.env.GITHUB_SHA}`;
|
||||
const baseRepo = `${github.context.repo.owner}/${github.context.repo.repo}`;
|
||||
if (externalRepository) {
|
||||
msg = `${msg} ${baseRepo}@${hash}`;
|
||||
} else {
|
||||
msg = `${msg} ${hash}`;
|
||||
}
|
||||
|
||||
try {
|
||||
if (allowEmptyCommit) {
|
||||
await exec.exec('git', ['commit', '--allow-empty', '-m', `${msg}`]);
|
||||
|
||||
@@ -11,6 +11,7 @@ export interface Inputs {
|
||||
readonly UserName: string;
|
||||
readonly UserEmail: string;
|
||||
readonly CommitMessage: string;
|
||||
readonly FullCommitMessage: string;
|
||||
readonly TagName: string;
|
||||
readonly TagMessage: string;
|
||||
readonly DisableNoJekyll: boolean;
|
||||
|
||||
21
src/main.ts
21
src/main.ts
@@ -1,10 +1,18 @@
|
||||
import {context} from '@actions/github';
|
||||
import * as core from '@actions/core';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as github from '@actions/github';
|
||||
import {Inputs} from './interfaces';
|
||||
import {showInputs, getInputs} from './get-inputs';
|
||||
import {setTokens} from './set-tokens';
|
||||
import {setRepo, setCommitAuthor, commit, push, pushTag} from './git-utils';
|
||||
import {
|
||||
setRepo,
|
||||
setCommitAuthor,
|
||||
getCommitMessage,
|
||||
commit,
|
||||
push,
|
||||
pushTag
|
||||
} from './git-utils';
|
||||
import {getWorkDirName, addNoJekyll, addCNAME, skipOnFork} from './utils';
|
||||
|
||||
export async function run(): Promise<void> {
|
||||
@@ -54,11 +62,16 @@ export async function run(): Promise<void> {
|
||||
await exec.exec('git', ['remote', 'add', 'origin', remoteURL]);
|
||||
await exec.exec('git', ['add', '--all']);
|
||||
await setCommitAuthor(inps.UserName, inps.UserEmail);
|
||||
await commit(
|
||||
inps.AllowEmptyCommit,
|
||||
const hash = `${process.env.GITHUB_SHA}`;
|
||||
const baseRepo = `${github.context.repo.owner}/${github.context.repo.repo}`;
|
||||
const commitMessage = getCommitMessage(
|
||||
inps.CommitMessage,
|
||||
inps.FullCommitMessage,
|
||||
inps.ExternalRepository,
|
||||
inps.CommitMessage
|
||||
baseRepo,
|
||||
hash
|
||||
);
|
||||
await commit(inps.AllowEmptyCommit, commitMessage);
|
||||
await push(inps.PublishBranch, inps.ForceOrphan);
|
||||
await pushTag(inps.TagName, inps.TagMessage);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user