From e124e7303a1dc3a12b4bfb81d966ca0efbd0515b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 4 May 2020 19:39:17 +0200 Subject: [PATCH] Windows runner uses Git GnuPG --- dist/index.js | 20 +++++++++++--------- src/gpg.ts | 18 +++++++++++++++--- src/main.ts | 7 ------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/dist/index.js b/dist/index.js index c70b8d1..33e0ba7 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1016,7 +1016,6 @@ const gpg = __importStar(__webpack_require__(207)); const openpgp = __importStar(__webpack_require__(781)); const stateHelper = __importStar(__webpack_require__(153)); const exec = __importStar(__webpack_require__(986)); -const os = __importStar(__webpack_require__(87)); function run() { return __awaiter(this, void 0, void 0, function* () { try { @@ -1024,11 +1023,6 @@ function run() { core.setFailed('Signing key required'); return; } - if (os.platform() == 'win32') { - core.info('🏃 Installing GnuPG...'); - yield exec.exec(`choco feature enable -n=allowGlobalConfirmation`); - yield exec.exec(`choco install gnupg`); - } core.info('📣 GnuPG info'); yield exec.exec('which', ['gpg']); const version = yield gpg.getVersion(); @@ -1125,10 +1119,18 @@ allow-preset-passphrase`; const getGpgPresetPassphrasePath = () => __awaiter(void 0, void 0, void 0, function* () { const { libexecdir: libexecdir } = yield exports.getDirs(); let gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase'); - if (os.platform() == 'win32' && !gpgPresetPassphrasePath.includes(':')) { - gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe'); + if (yield fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; } - return gpgPresetPassphrasePath; + gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe'); + if (yield fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; + } + gpgPresetPassphrasePath = path.join(`C:\\Program Files\\Git`, libexecdir, 'gpg-preset-passphrase.exe'); + if (yield fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; + } + throw new Error('gpg-preset-passphrase not found'); }); const getGnupgHome = () => __awaiter(void 0, void 0, void 0, function* () { if (process.env.GNUPGHOME) { diff --git a/src/gpg.ts b/src/gpg.ts index 27f27c9..6398890 100644 --- a/src/gpg.ts +++ b/src/gpg.ts @@ -21,11 +21,23 @@ export interface Dirs { const getGpgPresetPassphrasePath = async (): Promise => { const {libexecdir: libexecdir} = await getDirs(); + let gpgPresetPassphrasePath = path.join(libexecdir, 'gpg-preset-passphrase'); - if (os.platform() == 'win32' && !gpgPresetPassphrasePath.includes(':')) { - gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe'); + if (await fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; } - return gpgPresetPassphrasePath; + + gpgPresetPassphrasePath = path.join(process.env.HOMEDRIVE || '', libexecdir, 'gpg-preset-passphrase.exe'); + if (await fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; + } + + gpgPresetPassphrasePath = path.join(`C:\\Program Files\\Git`, libexecdir, 'gpg-preset-passphrase.exe'); + if (await fs.existsSync(gpgPresetPassphrasePath)) { + return gpgPresetPassphrasePath; + } + + throw new Error('gpg-preset-passphrase not found'); }; const getGnupgHome = async (): Promise => { diff --git a/src/main.ts b/src/main.ts index bbe4941..ace49c2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,7 +3,6 @@ import * as gpg from './gpg'; import * as openpgp from './openpgp'; import * as stateHelper from './state-helper'; import * as exec from '@actions/exec'; -import * as os from 'os'; async function run(): Promise { try { @@ -12,12 +11,6 @@ async function run(): Promise { return; } - if (os.platform() == 'win32') { - core.info('🏃 Installing GnuPG...'); - await exec.exec(`choco feature enable -n=allowGlobalConfirmation`); - await exec.exec(`choco install gnupg`); - } - core.info('📣 GnuPG info'); await exec.exec('which', ['gpg']); const version = await gpg.getVersion();