diff --git a/lib/git.js b/lib/git.js deleted file mode 100644 index e3c03c2..0000000 --- a/lib/git.js +++ /dev/null @@ -1,54 +0,0 @@ -"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 __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const child_process = __importStar(require("child_process")); -const git = (args = []) => __awaiter(void 0, void 0, void 0, function* () { - const stdout = child_process.execSync(`git ${args.join(' ')}`, { - encoding: 'utf8' - }); - return stdout.trim(); -}); -function isTagDirty(currentTag) { - return __awaiter(this, void 0, void 0, function* () { - try { - yield git(['describe', '--exact-match', '--tags', '--match', currentTag]); - } - catch (err) { - return true; - } - return false; - }); -} -exports.isTagDirty = isTagDirty; -function getTag() { - return __awaiter(this, void 0, void 0, function* () { - try { - return yield git(['describe', '--tags', '--abbrev=0']); - } - catch (err) { - return ''; - } - }); -} -exports.getTag = getTag; -function getShortCommit() { - return __awaiter(this, void 0, void 0, function* () { - return yield git(['show', "--format='%h'", 'HEAD', '--quiet']); - }); -} -exports.getShortCommit = getShortCommit; diff --git a/lib/installer.js b/lib/installer.js deleted file mode 100644 index 9ee7fbf..0000000 --- a/lib/installer.js +++ /dev/null @@ -1,72 +0,0 @@ -"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 __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const core = __importStar(require("@actions/core")); -const tc = __importStar(require("@actions/tool-cache")); -const download = __importStar(require("download")); -const fs = __importStar(require("fs")); -const os = __importStar(require("os")); -const path = __importStar(require("path")); -const util = __importStar(require("util")); -const restm = __importStar(require("typed-rest-client/RestClient")); -let osPlat = os.platform(); -let osArch = os.arch(); -function getGoReleaser(version) { - return __awaiter(this, void 0, void 0, function* () { - const selected = yield determineVersion(version); - if (selected) { - version = selected; - } - core.info(`✅ GoReleaser version found: ${version}`); - const tmpdir = fs.mkdtempSync(path.join(os.tmpdir(), 'goreleaser-')); - const fileName = getFileName(); - const downloadUrl = util.format('https://github.com/goreleaser/goreleaser/releases/download/%s/%s', version, fileName); - core.info(`⬇️ Downloading ${downloadUrl}...`); - yield download.default(downloadUrl, tmpdir, { filename: fileName }); - core.info('📦 Extracting GoReleaser...'); - let extPath = tmpdir; - if (osPlat == 'win32') { - extPath = yield tc.extractZip(`${tmpdir}/${fileName}`); - } - else { - extPath = yield tc.extractTar(`${tmpdir}/${fileName}`); - } - return path.join(extPath, osPlat == 'win32' ? 'goreleaser.exe' : 'goreleaser'); - }); -} -exports.getGoReleaser = getGoReleaser; -function getFileName() { - const platform = osPlat == 'win32' ? 'Windows' : osPlat == 'darwin' ? 'Darwin' : 'Linux'; - const arch = osArch == 'x64' ? 'x86_64' : 'i386'; - const ext = osPlat == 'win32' ? 'zip' : 'tar.gz'; - return util.format('goreleaser_%s_%s.%s', platform, arch, ext); -} -function determineVersion(version) { - return __awaiter(this, void 0, void 0, function* () { - let rest = new restm.RestClient('goreleaser-action', 'https://github.com', undefined, { - headers: { - Accept: 'application/json' - } - }); - let res = yield rest.get(`/goreleaser/goreleaser/releases/${version}`); - if (res.statusCode != 200 || res.result === null) { - throw new Error(`Cannot find GoReleaser ${version} release (http ${res.statusCode})`); - } - return res.result.tag_name; - }); -} diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 68b2938..0000000 --- a/lib/main.js +++ /dev/null @@ -1,70 +0,0 @@ -"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 __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const git = __importStar(require("./git")); -const installer = __importStar(require("./installer")); -const core = __importStar(require("@actions/core")); -const exec = __importStar(require("@actions/exec")); -const fs = __importStar(require("fs")); -function run(silent) { - return __awaiter(this, void 0, void 0, function* () { - try { - const version = core.getInput('version') || 'latest'; - const args = core.getInput('args'); - const key = core.getInput('key'); - const workdir = core.getInput('workdir') || '.'; - const goreleaser = yield installer.getGoReleaser(version); - const commit = yield git.getShortCommit(); - const tag = yield git.getTag(); - const isTagDirty = yield git.isTagDirty(tag); - if (workdir && workdir !== '.') { - core.info(`📂 Using ${workdir} as working directory...`); - process.chdir(workdir); - } - let snapshot = ''; - if (args.split(' ').indexOf('release') > -1) { - if (isTagDirty) { - 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}`); - } - } - if (key) { - core.info('🔑 Importing signing key...'); - let path = `${process.env.HOME}/key.asc`; - fs.writeFileSync(path, key, { mode: 0o600 }); - yield exec.exec('gpg', ['--import', path], { - silent: silent - }); - } - core.info('🏃 Running GoReleaser...'); - yield exec.exec(`${goreleaser} ${args}${snapshot}`, undefined, { - silent: silent - }); - } - catch (error) { - core.setFailed(error.message); - } - }); -} -exports.run = run; -run();