From bc0330e238cbdf6e86dd554115a67ded5b29e1ed Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Mon, 30 Mar 2015 17:45:58 +0300 Subject: [PATCH 1/5] Add repository field --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index c01b6352f..6ea8db87b 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,10 @@ "name": "tns-core", "description": "Telerik NativeScript Core", "version": "0.4.2", + "repository": { + "type": "git", + "url": "https://github.com/NativeScript/cross-platform-modules" + }, "files": [ "**/*.*", "**/*" From c962d7005ab00a19f5cc54e1c237d9b65640c4f2 Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Tue, 31 Mar 2015 10:03:54 +0300 Subject: [PATCH 2/5] Populate the repository field to the applications. Add the commit hashtag if exists --- gruntfile.js | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/gruntfile.js b/gruntfile.js index aeda64496..bf750f7e6 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -23,6 +23,9 @@ module.exports = function(grunt) { var updateModulesPackageDef = function(content, srcPath) { return updatePackageDef(content, function(contentAsObject) { contentAsObject.version = localCfg.packageVersion; + if (localCfg.commitSHA) { + contentAsObject.repository.url += "/commit/" + localCfg.commitSHA; + } }); }; @@ -33,6 +36,15 @@ module.exports = function(grunt) { contentAsObject.name = "tns-samples-" + currentAppName; contentAsObject.description = "Nativescript " + currentAppName + " sample application"; contentAsObject.license = "BSD"; + if (!contentAsObject.repository) { + contentAsObject.repository = {}; + } + if (!contentAsObject.repository.url) { + contentAsObject.repository.url = localCfg.mainPackageContent.repository.url; + } + if (localCfg.commitSHA) { + contentAsObject.repository.url += "/commit/" + localCfg.commitSHA; + } }); }; @@ -42,14 +54,20 @@ module.exports = function(grunt) { contentAsObject.name = "tns-definitions"; contentAsObject.description = "NativeScript Module definitions"; contentAsObject.license = "Apache-2.0"; + if (localCfg.commitSHA) { + contentAsObject.repository.url += "/commit/" + localCfg.commitSHA; + } }); - } + }; - var getPackageVersion = function(packageFilePath) { - packageContent = grunt.file.readJSON(packageFilePath); + var getCommitSha = function() { + return "" + }; + + var getPackageVersion = function() { var buildVersion = process.env.PACKAGE_VERSION; if (!buildVersion) { - return packageContent.version; + return localCfg.mainPackageContent.version; } return packageContent.version + "-" + buildVersion; }; @@ -88,7 +106,9 @@ module.exports = function(grunt) { "!./ui/slide-out/**/*.*" ] }; + localCfg.mainPackageContent = grunt.file.readJSON(localCfg.packageJsonFilePath); localCfg.packageVersion = getPackageVersion(localCfg.packageJsonFilePath); + localCfg.commitSHA = getCommitSha(); localCfg.defaultExcludes = [ "!" + localCfg.outDir + "/**/*.*", "!./node_modules/**/*.*", From a6837a82fe6cd29247602ef7f011727d423afccd Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Tue, 31 Mar 2015 11:06:50 +0300 Subject: [PATCH 3/5] Use GIT_COMMIT if found in the environment --- gruntfile.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gruntfile.js b/gruntfile.js index bf750f7e6..d5f922271 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -61,7 +61,9 @@ module.exports = function(grunt) { }; var getCommitSha = function() { - return "" + if (process.env.GIT_COMMIT) { + return process.env.GIT_COMMIT; + return ""; }; var getPackageVersion = function() { From 4987dc2ef07dac082fb13941a0acc4f30044398c Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Tue, 31 Mar 2015 12:09:52 +0300 Subject: [PATCH 4/5] Use grunt-shell to retrieve git commit if not existent as environment variable --- gruntfile.js | 19 +++++++++++++++++++ package.json | 5 +++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gruntfile.js b/gruntfile.js index d5f922271..f6430a073 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -63,9 +63,17 @@ module.exports = function(grunt) { var getCommitSha = function() { if (process.env.GIT_COMMIT) { return process.env.GIT_COMMIT; + } return ""; }; + var assignGitSHA = function(err, stdout, stderr, cb) { + if (!localCfg.commitSHA) { + localCfg.commitSHA = stdout.replace("\n", ""); + } + cb(); + }; + var getPackageVersion = function() { var buildVersion = process.env.PACKAGE_VERSION; if (!buildVersion) { @@ -108,6 +116,7 @@ module.exports = function(grunt) { "!./ui/slide-out/**/*.*" ] }; + localCfg.mainPackageContent = grunt.file.readJSON(localCfg.packageJsonFilePath); localCfg.packageVersion = getPackageVersion(localCfg.packageJsonFilePath); localCfg.commitSHA = getCommitSha(); @@ -305,6 +314,14 @@ module.exports = function(grunt) { return targetDirs; }() } + }, + shell: { + getGitSHA: { + command: "git rev-parse HEAD", + options: { + callback: assignGitSHA + } + } } }); @@ -314,6 +331,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks("grunt-exec"); grunt.loadNpmTasks("grunt-tslint"); grunt.loadNpmTasks("grunt-multi-dest"); + grunt.loadNpmTasks("grunt-shell"); var cloneTasks = function(originalTasks, taskNameSuffix) { @@ -425,6 +443,7 @@ module.exports = function(grunt) { grunt.registerTask("default", ((typeof(grunt.option('runtslint')) != "undefined" && !grunt.option('runtslint')) ? [] : ["tslint:build"]).concat([ "clean:build", + "shell:getGitSHA", "collect-apps-raw-files", "collect-definitions-raw-files", diff --git a/package.json b/package.json index 6ea8db87b..c67ed0e22 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "description": "Telerik NativeScript Core", "version": "0.4.2", "repository": { - "type": "git", - "url": "https://github.com/NativeScript/cross-platform-modules" + "type": "git", + "url": "https://github.com/NativeScript/cross-platform-modules" }, "files": [ "**/*.*", @@ -17,6 +17,7 @@ "grunt-contrib-copy": "0.5.0", "grunt-exec": "0.4.5", "grunt-multi-dest": "1.0.0", + "grunt-shell": "1.1.2", "grunt-ts": "1.12.1", "grunt-tslint": "0.4.2", "typescript": "1.4.1" From 16f7047482818d0a8fecf9d5b5c1d0817552f859 Mon Sep 17 00:00:00 2001 From: Erjan Gavalji Date: Tue, 31 Mar 2015 14:06:07 +0300 Subject: [PATCH 5/5] Fix the build failure - a variable movement was not carried out properly --- gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gruntfile.js b/gruntfile.js index f6430a073..a680e7536 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -79,7 +79,7 @@ module.exports = function(grunt) { if (!buildVersion) { return localCfg.mainPackageContent.version; } - return packageContent.version + "-" + buildVersion; + return localCfg.mainPackageContent.version + "-" + buildVersion; }; var processAppFile = function(content, srcPath) {