mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-14 01:04:18 +08:00
fix(travis): update travis task for spawn signature
This commit is contained in:
parent
370d2b40aa
commit
7bfa07139c
2 changed files with 52 additions and 43 deletions
|
@ -25,17 +25,17 @@ const fs = require('fs-plus');
|
|||
// Which should return "accepted"
|
||||
module.exports = (grunt) => {
|
||||
let getCertData;
|
||||
const {spawn, shouldPublishBuild} = require('./task-helpers')(grunt);
|
||||
const {spawnP, shouldPublishBuild} = require('./task-helpers')(grunt);
|
||||
const tmpKeychain = "n1-build.keychain";
|
||||
|
||||
const unlockKeychain = (keychain, keychainPass) => {
|
||||
const args = ['unlock-keychain', '-p', keychainPass, keychain];
|
||||
return spawn({cmd: "security", args});
|
||||
return spawnP({cmd: "security", args});
|
||||
};
|
||||
|
||||
const cleanupKeychain = () => {
|
||||
if (fs.existsSync(path.join(process.env.HOME, "Library", "Keychains", tmpKeychain))) {
|
||||
return spawn({cmd: "security", args: ["delete-keychain", tmpKeychain]});
|
||||
return spawnP({cmd: "security", args: ["delete-keychain", tmpKeychain]});
|
||||
}
|
||||
return Promise.resolve()
|
||||
};
|
||||
|
@ -48,24 +48,24 @@ module.exports = (grunt) => {
|
|||
|
||||
// Create a custom, temporary keychain
|
||||
return cleanupKeychain()
|
||||
.then(() => spawn({cmd: "security", args: ["create-keychain", '-p', tmpPass, tmpKeychain]}))
|
||||
.then(() => spawnP({cmd: "security", args: ["create-keychain", '-p', tmpPass, tmpKeychain]}))
|
||||
|
||||
// Make the custom keychain default, so xcodebuild will use it for signing
|
||||
.then(() => spawn({cmd: "security", args: ["default-keychain", "-s", tmpKeychain]}))
|
||||
.then(() => spawnP({cmd: "security", args: ["default-keychain", "-s", tmpKeychain]}))
|
||||
|
||||
// Unlock the keychain
|
||||
.then(() => unlockKeychain(tmpKeychain, tmpPass))
|
||||
|
||||
// Set keychain timeout to 1 hour for long builds
|
||||
.then(() => spawn({cmd: "security", args: ["set-keychain-settings", "-t", "3600", "-l", tmpKeychain]}))
|
||||
.then(() => spawnP({cmd: "security", args: ["set-keychain-settings", "-t", "3600", "-l", tmpKeychain]}))
|
||||
|
||||
// Add certificates to keychain and allow codesign to access them
|
||||
.then(() => spawn({cmd: "security", args: ["import", appleCert, "-k", tmpKeychain, "-T", codesignBin]}))
|
||||
.then(() => spawnP({cmd: "security", args: ["import", appleCert, "-k", tmpKeychain, "-T", codesignBin]}))
|
||||
|
||||
.then(() => spawn({cmd: "security", args: ["import", nylasCert, "-k", tmpKeychain, "-T", codesignBin]}))
|
||||
.then(() => spawnP({cmd: "security", args: ["import", nylasCert, "-k", tmpKeychain, "-T", codesignBin]}))
|
||||
|
||||
// Load the password for the private key from environment variables
|
||||
.then(() => spawn({cmd: "security", args: ["import", nylasPrivateKey, "-k", tmpKeychain, "-P", keyPass, "-T", codesignBin]}));
|
||||
.then(() => spawnP({cmd: "security", args: ["import", nylasPrivateKey, "-k", tmpKeychain, "-P", keyPass, "-T", codesignBin]}));
|
||||
};
|
||||
|
||||
getCertData = () => {
|
||||
|
|
|
@ -1,42 +1,51 @@
|
|||
const childProcess = require('child_process');
|
||||
|
||||
module.exports = (grunt) => {
|
||||
return {
|
||||
spawn(options, callback) {
|
||||
const stdout = [];
|
||||
const stderr = [];
|
||||
let error = null;
|
||||
const proc = childProcess.spawn(options.cmd, options.args, options.opts);
|
||||
proc.stdout.on('data', data => stdout.push(data.toString()));
|
||||
proc.stderr.on('data', data => stderr.push(data.toString()));
|
||||
proc.on('error', (processError) => {
|
||||
return error != null ? error : (error = processError)
|
||||
});
|
||||
proc.on('close', (exitCode, signal) => {
|
||||
if (exitCode !== 0) { if (typeof error === 'undefined' || error === null) { error = new Error(signal); } }
|
||||
const results = {stderr: stderr.join(''), stdout: stdout.join(''), code: exitCode};
|
||||
if (exitCode !== 0) { grunt.log.error(results.stderr); }
|
||||
return callback(error, results, exitCode);
|
||||
});
|
||||
},
|
||||
function spawn(options, callback) {
|
||||
const stdout = [];
|
||||
const stderr = [];
|
||||
let error = null;
|
||||
const proc = childProcess.spawn(options.cmd, options.args, options.opts);
|
||||
proc.stdout.on('data', data => stdout.push(data.toString()));
|
||||
proc.stderr.on('data', data => stderr.push(data.toString()));
|
||||
proc.on('error', (processError) => {
|
||||
return error != null ? error : (error = processError)
|
||||
});
|
||||
proc.on('close', (exitCode, signal) => {
|
||||
if (exitCode !== 0) { if (typeof error === 'undefined' || error === null) { error = new Error(signal); } }
|
||||
const results = {stderr: stderr.join(''), stdout: stdout.join(''), code: exitCode};
|
||||
if (exitCode !== 0) { grunt.log.error(results.stderr); }
|
||||
return callback(error, results, exitCode);
|
||||
});
|
||||
}
|
||||
|
||||
shouldPublishBuild() {
|
||||
if (!process.env.PUBLISH_BUILD) {
|
||||
grunt.log.writeln("Skipping because PUBLISH_BUILD env is not set");
|
||||
function shouldPublishBuild() {
|
||||
if (!process.env.PUBLISH_BUILD) {
|
||||
grunt.log.writeln("Skipping because PUBLISH_BUILD env is not set");
|
||||
return false;
|
||||
}
|
||||
if (process.env.APPVEYOR) {
|
||||
if (process.env.APPVEYOR_PULL_REQUEST_NUMBER) {
|
||||
grunt.log.writeln("Skipping because this is a pull request");
|
||||
return false;
|
||||
}
|
||||
if (process.env.APPVEYOR) {
|
||||
if (process.env.APPVEYOR_PULL_REQUEST_NUMBER) {
|
||||
grunt.log.writeln("Skipping because this is a pull request");
|
||||
return false;
|
||||
}
|
||||
} else if (process.env.TRAVIS) {
|
||||
if (process.env.TRAVIS_PULL_REQUEST !== "false") {
|
||||
grunt.log.writeln("Skipping because TRAVIS_PULL_REQUEST env doesn't equal 'false'");
|
||||
return false;
|
||||
}
|
||||
} else if (process.env.TRAVIS) {
|
||||
if (process.env.TRAVIS_PULL_REQUEST !== "false") {
|
||||
grunt.log.writeln("Skipping because TRAVIS_PULL_REQUEST env doesn't equal 'false'");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
};
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function spawnP(options) {
|
||||
return new Promise((resolve, reject) => {
|
||||
spawn(options, (error) => {
|
||||
if (error) return reject(error);
|
||||
return resolve()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return {spawn, spawnP, shouldPublishBuild};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue