mirror of
https://github.com/goreleaser/goreleaser-action
synced 2026-07-08 16:17:32 +00:00
refactor: use built-in getExecOutput (#292)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
-34
@@ -1,34 +0,0 @@
|
||||
import * as actionsExec from '@actions/exec';
|
||||
import {ExecOptions} from '@actions/exec';
|
||||
|
||||
export interface ExecResult {
|
||||
success: boolean;
|
||||
stdout: string;
|
||||
stderr: string;
|
||||
}
|
||||
|
||||
export const exec = async (command: string, args: string[] = [], silent: boolean): Promise<ExecResult> => {
|
||||
let stdout: string = '';
|
||||
let stderr: string = '';
|
||||
|
||||
const options: ExecOptions = {
|
||||
silent: silent,
|
||||
ignoreReturnCode: true
|
||||
};
|
||||
options.listeners = {
|
||||
stdout: (data: Buffer) => {
|
||||
stdout += data.toString();
|
||||
},
|
||||
stderr: (data: Buffer) => {
|
||||
stderr += data.toString();
|
||||
}
|
||||
};
|
||||
|
||||
const returnCode: number = await actionsExec.exec(command, args, options);
|
||||
|
||||
return {
|
||||
success: returnCode === 0,
|
||||
stdout: stdout.trim(),
|
||||
stderr: stderr.trim()
|
||||
};
|
||||
};
|
||||
+12
-7
@@ -1,12 +1,17 @@
|
||||
import * as exec from './exec';
|
||||
import * as exec from '@actions/exec';
|
||||
|
||||
const git = async (args: string[] = []): Promise<string> => {
|
||||
return await exec.exec(`git`, args, true).then(res => {
|
||||
if (res.stderr != '' && !res.success) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
return res.stdout.trim();
|
||||
});
|
||||
return await exec
|
||||
.getExecOutput(`git`, args, {
|
||||
ignoreReturnCode: true,
|
||||
silent: true
|
||||
})
|
||||
.then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
return res.stdout.trim();
|
||||
});
|
||||
};
|
||||
|
||||
export async function getTag(): Promise<string> {
|
||||
|
||||
+2
-3
@@ -15,7 +15,6 @@ export async function getGoReleaser(distribution: string, version: string): Prom
|
||||
throw new Error(`Cannot find GoReleaser ${version} release`);
|
||||
}
|
||||
|
||||
core.info(`✅ GoReleaser version found: ${release.tag_name}`);
|
||||
const filename = getFilename(distribution);
|
||||
const downloadUrl = util.format(
|
||||
'https://github.com/goreleaser/%s/releases/download/%s/%s',
|
||||
@@ -24,11 +23,11 @@ export async function getGoReleaser(distribution: string, version: string): Prom
|
||||
filename
|
||||
);
|
||||
|
||||
core.info(`⬇️ Downloading ${downloadUrl}...`);
|
||||
core.info(`Downloading ${downloadUrl}`);
|
||||
const downloadPath: string = await tc.downloadTool(downloadUrl);
|
||||
core.debug(`Downloaded to ${downloadPath}`);
|
||||
|
||||
core.info('📦 Extracting GoReleaser...');
|
||||
core.info('Extracting GoReleaser');
|
||||
let extPath: string;
|
||||
if (osPlat == 'win32') {
|
||||
extPath = await tc.extractZip(downloadPath);
|
||||
|
||||
+6
-6
@@ -12,7 +12,7 @@ async function run(): Promise<void> {
|
||||
const workdir = core.getInput('workdir') || '.';
|
||||
const isInstallOnly = /^true$/i.test(core.getInput('install-only'));
|
||||
const goreleaser = await installer.getGoReleaser(distribution, version);
|
||||
core.info(`✅ GoReleaser installed successfully`);
|
||||
core.info(`GoReleaser ${version} installed successfully`);
|
||||
|
||||
if (isInstallOnly) {
|
||||
const goreleaserDir = dirname(goreleaser);
|
||||
@@ -20,11 +20,12 @@ async function run(): Promise<void> {
|
||||
core.debug(`Added ${goreleaserDir} to PATH`);
|
||||
return;
|
||||
} else if (!args) {
|
||||
throw new Error('args input required');
|
||||
core.setFailed('args input required');
|
||||
return;
|
||||
}
|
||||
|
||||
if (workdir && workdir !== '.') {
|
||||
core.info(`📂 Using ${workdir} as working directory...`);
|
||||
core.info(`Using ${workdir} as working directory`);
|
||||
process.chdir(workdir);
|
||||
}
|
||||
|
||||
@@ -35,16 +36,15 @@ async function run(): Promise<void> {
|
||||
let snapshot = '';
|
||||
if (args.split(' ').indexOf('release') > -1) {
|
||||
if (isTagDirty) {
|
||||
core.info(`⚠️ No tag found for commit ${commit}. Snapshot forced`);
|
||||
core.info(`No tag found for commit ${commit}. Snapshot forced`);
|
||||
if (!args.includes('--snapshot')) {
|
||||
snapshot = ' --snapshot';
|
||||
}
|
||||
} else {
|
||||
core.info(`✅ ${tag} tag found for commit ${commit}`);
|
||||
core.info(`${tag} tag found for commit ${commit}`);
|
||||
}
|
||||
}
|
||||
|
||||
core.info('🏃 Running GoReleaser...');
|
||||
if (!('GORELEASER_CURRENT_TAG' in process.env)) {
|
||||
process.env.GORELEASER_CURRENT_TAG = tag;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user