fh-digger-cli
Advanced tools
Comparing version 0.1.6 to 0.1.7
{ | ||
"name": "fh-digger-cli", | ||
"version": "0.1.6", | ||
"version": "0.1.7", | ||
"bin": { | ||
@@ -5,0 +5,0 @@ "digger": "./bin/digger" |
@@ -12,4 +12,27 @@ # fh-digger-cli | ||
```bash | ||
grunt mochaTest | ||
grunt | ||
``` | ||
# Start a build from command line | ||
* install fh-digger-cli | ||
``` | ||
npm install fh-digger-cli -g | ||
``` | ||
* Setup iOS certificates (optional) | ||
This command is used to register the iOS certificates. This command generate [a json file certificates](certificates). | ||
``` | ||
> digger setup | ||
? Certificates folder location fixtures/ | ||
? Specify location of the distribution *.pem file fixtures/certificates/private_key.pem | ||
? Specify location of the distribution *.cer file fixtures/certificates/ios_distribution.cer | ||
? Specify location of the distribution *.mobileprovision file fixtures/certificates/DIGGERWILD.mobileprovision | ||
``` | ||
* Build your app | ||
``` | ||
digger -p test/fixtures/ios/blank-ios-app-objc-ios7-cocoapods | ||
``` | ||
where test/fixtures/ios/blank-ios-app-objc-ios7-cocoapods contains a [CocoaPods blank template app](https://github.com/feedhenry-templates/blank-ios-app/tree/cocoapods) |
@@ -8,5 +8,13 @@ var request = require("request"); | ||
var end = function (baseUrl, task, timer) { | ||
function createTargetUrl(settings) { | ||
var targetUrl = settings.baseUrl + '/digger/' + settings.platform + '/build'; | ||
if (settings.digman === true) { | ||
targetUrl = settings.baseUrl + '/digman/' + settings.platform + '-v3/build'; | ||
} | ||
return targetUrl; | ||
} | ||
var end = function (settings, task, timer) { | ||
clearInterval(timer); | ||
request.del(baseUrl + '/builds?task=' + task, function (err) { | ||
request.del(createTargetUrl(settings) + 's?task=' + task, function (err) { | ||
if (err) { | ||
@@ -18,3 +26,6 @@ throw new Error(err); | ||
var checkBuildStatus = function (settings, baseUrl, buildResponse) { | ||
var checkBuildStatus = function (settings, buildResponse) { | ||
if (arguments.length > 2) { | ||
throw new Error('The buildUrl argument has become a settings property. Please refactor your code accordingly. See RHMAP-9296'); | ||
} | ||
var d = Q.defer(); | ||
@@ -25,7 +36,4 @@ var interval = settings.interval || 2000; | ||
var task = buildResponse.build; | ||
var targetUrl = baseUrl + '/digger/'+ settings.platform +'/builds?task=' + task + "&digger=" + buildResponse.balancer; | ||
if (settings.digman === true) { | ||
targetUrl = baseUrl + '/digman/'+ settings.platform +'-v3/builds?task=' + task + "&digger=" + buildResponse.balancer; | ||
} | ||
var targetUrl = createTargetUrl(settings) + 's?task=' + task + "&digger=" + buildResponse.balancer; | ||
request.get(targetUrl, function (err, res, body) { | ||
@@ -35,3 +43,3 @@ if (err || res.statusCode !== 200) { | ||
d.reject(new Error("failed to query build status. res body: " + body)); | ||
end(baseUrl, task, timer); | ||
end(settings, task, timer); | ||
} else { | ||
@@ -41,3 +49,3 @@ var resjson = JSON.parse(body); | ||
var newMessages = resjson.slice(lastUpdate.length); | ||
lastUpdate = resjson; | ||
@@ -47,3 +55,3 @@ for (var i = 0; i < newMessages.length; i++) { | ||
d.reject(new Error("Build error: " + newMessages[i].errmsg)); | ||
end(baseUrl, task, timer); | ||
end(settings, task, timer); | ||
} else { | ||
@@ -58,3 +66,3 @@ d.notify(newMessages[i].message); | ||
}); | ||
end(baseUrl, task, timer); | ||
end(settings, task, timer); | ||
} else { | ||
@@ -64,3 +72,3 @@ var current = new Date().getTime(); | ||
d.reject(new Error("Build did not finish in " + MAXTIME + " milliseconds. Consider failed.")); | ||
end(baseUrl, task, timer); | ||
end(settings, task, timer); | ||
} | ||
@@ -78,6 +86,3 @@ } | ||
var d = Q.defer(); | ||
var targetUrl = settings.baseUrl + '/digger/' + settings.platform + '/build'; | ||
if (settings.digman === true) { | ||
targetUrl = settings.baseUrl + '/digman/' + settings.platform + '-v3/build'; | ||
} | ||
var targetUrl = createTargetUrl(settings); | ||
var r = request.post(targetUrl, function (err, res, body) { | ||
@@ -117,27 +122,2 @@ if (err) { | ||
if (settings.upload === "airwatch") { | ||
form.append('mdm_includesdk', "true"); | ||
form.append('mdm_pushbinary', "true"); | ||
form.append('mdm_provider', 'airwatch'); | ||
form.append('mdm_provider_url', 'https://apidev-as.awmdm.com'); | ||
form.append('mdm_provider_username', 'sdrake@feedhenry.com'); | ||
form.append('mdm_provider_password', 'RHMAP2015'); | ||
form.append('mdm_provider_apikey', '1DKHA4AAAAG5A5BQADQA'); | ||
form.append('mdm_provider_name', 'AirWatch'); | ||
} else if (settings.upload === 'mobileiron') { | ||
form.append('mdm_includesdk', "true"); | ||
form.append('mdm_pushbinary', "true"); | ||
form.append('mdm_provider', 'mobileiron'); | ||
form.append('mdm_provider_url', 'https://m.mobileiron.net/redhat123'); | ||
form.append('mdm_provider_username', 'admin'); | ||
form.append('mdm_provider_password', 'Waterford1'); | ||
form.append('mdm_provider_name', 'MobileIron'); | ||
} else if (settings.upload === 'apperian') { | ||
form.append('mdm_pushbinary', "true"); | ||
form.append('mdm_provider','apperian'); | ||
form.append('mdm_provider_username', 'coneill'); | ||
form.append('mdm_provider_password', 'lfTuEumq0TI8'); | ||
form.append('mdm_provider_name', 'Apperian'); | ||
} | ||
form.append("app_zip", fs.createReadStream(settings.file)); | ||
@@ -150,2 +130,2 @@ return d.promise; | ||
build: build | ||
}; | ||
}; |
@@ -43,3 +43,3 @@ var _ = require("underscore"); | ||
shell.rm("-rf", path.dirname(settings.zip)); | ||
return build.buildStatus(buildSettings, url, buildResponse); | ||
return build.buildStatus(buildSettings, buildResponse); | ||
}).then(function (job) { | ||
@@ -46,0 +46,0 @@ var filename = job.build.url.substring(job.build.url.lastIndexOf('/') + 1); |
@@ -8,3 +8,3 @@ var filehelper = require("./filehelper"); | ||
var windows = "**/*.sln"; | ||
var advancedHybrid = "plugins"; | ||
var advancedHybrid = "config.xml"; | ||
var basicHybrid = "www"; | ||
@@ -11,0 +11,0 @@ |
var buildHelper = require("../src/buildhelper"); | ||
var path = require("path"); | ||
var fs = require("fs"); | ||
var fsp = require("fs-promise"); | ||
var os = require('os'); | ||
var shell = require("shelljs"); | ||
var winston = require("winston"); | ||
var Q = require("q"); | ||
var mockServerClient = require('mockserver-client').mockServerClient("localhost", 1080); | ||
@@ -50,8 +47,9 @@ | ||
winston.info('requesting status'); | ||
var settings = { | ||
platform: 'ios', | ||
interval:200 | ||
interval:200, | ||
baseUrl: 'http://localhost:1080' | ||
}; | ||
var buildSettings = { | ||
@@ -62,3 +60,3 @@ balancer: "testBalancer", | ||
return buildHelper.buildStatus(settings, 'http://localhost:1080', buildSettings); | ||
return buildHelper.buildStatus(settings, buildSettings); | ||
@@ -119,3 +117,3 @@ }).then(function () { | ||
return mockServerClient.retrieveRequests("/digman/android-v3/build").then(function (request) { | ||
winston.log(request) | ||
winston.log(request); | ||
if (request) | ||
@@ -130,3 +128,3 @@ done(); | ||
}); | ||
it('Test iOS Build with digman', function (done) { | ||
@@ -146,3 +144,3 @@ mockServerClient.mockSimpleResponse("/digman/ios-v3/build", {name: 'name'}, 200).then(function () { | ||
return mockServerClient.retrieveRequests("/digman/ios-v3/build").then(function (request) { | ||
winston.log(request) | ||
winston.log(request); | ||
if (request) | ||
@@ -149,0 +147,0 @@ done(); |
@@ -13,6 +13,6 @@ var typeResolver = require("../src/project-type"); | ||
before('setup type resolver', function (done) { | ||
winston.info('creating fake project dirs') | ||
winston.info('creating fake project dirs'); | ||
Q.fcall(function () { | ||
var folder = path.resolve(os.tmpdir(), 'android') | ||
var folder = path.resolve(os.tmpdir(), 'android'); | ||
return fsp.mkdirs(folder) | ||
@@ -23,3 +23,3 @@ .then(function () { | ||
}).then(function () { | ||
var folder = path.resolve(os.tmpdir(), 'iOS') | ||
var folder = path.resolve(os.tmpdir(), 'iOS'); | ||
return fsp.mkdirs(folder) | ||
@@ -30,3 +30,3 @@ .then(function () { | ||
}).then(function () { | ||
var folder = path.resolve(os.tmpdir(), 'advanced-hybrid', 'plugins') | ||
var folder = path.resolve(os.tmpdir(), 'advanced-hybrid', 'config.xml'); | ||
return fsp.mkdirs(folder); | ||
@@ -40,3 +40,3 @@ }).then(function () { | ||
}).then(function () { | ||
var folder = path.resolve(os.tmpdir(), 'windows', 'app') | ||
var folder = path.resolve(os.tmpdir(), 'windows', 'app'); | ||
return fsp.mkdirs(folder) | ||
@@ -57,3 +57,3 @@ .then(function () { | ||
after('tear down type resolver', function (done) { | ||
winston.info('removing fake project dirs') | ||
winston.info('removing fake project dirs'); | ||
shell.rm("-rf", path.resolve(os.tmpdir(), 'android')); | ||
@@ -60,0 +60,0 @@ shell.rm("-rf", path.resolve(os.tmpdir(), 'iOS')); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
37
9
0
28916
716