|
1 | 1 | const childProcess = require("child_process"); |
| 2 | +const EOL = require("os").EOL; |
2 | 3 | const now = new Date().toISOString(); |
3 | 4 |
|
| 5 | +const CONFIG_JSON_PATH = "config/config.json"; |
| 6 | + |
| 7 | +const ENVIRONMENTS = { |
| 8 | + live: "live", |
| 9 | + dev: "dev" |
| 10 | +}; |
| 11 | + |
| 12 | +const GA_TRACKING_IDS = { |
| 13 | + [ENVIRONMENTS.dev]: "UA-111455-51", |
| 14 | + [ENVIRONMENTS.live]: "UA-111455-44" |
| 15 | +}; |
| 16 | + |
| 17 | +const CONFIG_DATA = { |
| 18 | + filePath: "config/config.json", |
| 19 | + gaKey: "GA_TRACKING_ID" |
| 20 | +} |
| 21 | + |
4 | 22 | function shallowCopy(obj) { |
5 | 23 | var result = {}; |
6 | 24 | Object.keys(obj).forEach(function (key) { |
@@ -101,17 +119,6 @@ module.exports = function (grunt) { |
101 | 119 |
|
102 | 120 | }, |
103 | 121 |
|
104 | | - copy: { |
105 | | - package_to_drop_folder: { |
106 | | - src: "*.tgz", |
107 | | - dest: "<%= copyPackageTo %>/<%= jobName %>/<%= dateString %> #<%= buildNumber %>/" |
108 | | - }, |
109 | | - package_to_qa_drop_folder: { |
110 | | - src: "*.tgz", |
111 | | - dest: "<%= copyPackageTo %>/<%= jobName %>/nativescript.tgz" |
112 | | - } |
113 | | - }, |
114 | | - |
115 | 122 | clean: { |
116 | 123 | src: ["test/**/*.js*", |
117 | 124 | "lib/**/*.js*", |
@@ -191,17 +198,41 @@ module.exports = function (grunt) { |
191 | 198 | grunt.file.write("package.json", JSON.stringify(packageJson, null, " ")); |
192 | 199 | }); |
193 | 200 |
|
| 201 | + const setConfig = (key, value) => { |
| 202 | + const configJson = grunt.file.readJSON(CONFIG_DATA.filePath); |
| 203 | + configJson[key] = value; |
| 204 | + const stringConfigContent = JSON.stringify(configJson, null, " ") + EOL; |
| 205 | + grunt.file.write(CONFIG_DATA.filePath, stringConfigContent); |
| 206 | + } |
| 207 | + |
| 208 | + grunt.registerTask("set_live_ga_id", function() { |
| 209 | + setConfig(CONFIG_DATA.gaKey, GA_TRACKING_IDS[ENVIRONMENTS.live]); |
| 210 | + }); |
| 211 | + |
| 212 | + grunt.registerTask("set_dev_ga_id", function() { |
| 213 | + setConfig(CONFIG_DATA.gaKey, GA_TRACKING_IDS[ENVIRONMENTS.dev]); |
| 214 | + }); |
| 215 | + |
| 216 | + grunt.registerTask("verify_live_ga_id", function() { |
| 217 | + var configJson = grunt.file.readJSON(CONFIG_DATA.filePath); |
| 218 | + |
| 219 | + if(configJson[CONFIG_DATA.gaKey] !== GA_TRACKING_IDS[ENVIRONMENTS.live]) { |
| 220 | + throw new Error("Google Analytics id is not configured correctly."); |
| 221 | + } |
| 222 | + }); |
| 223 | + |
194 | 224 | grunt.registerTask("test", ["ts:devall", "shell:npm_test"]); |
195 | | - grunt.registerTask("pack", [ |
| 225 | + grunt.registerTask("prepare", [ |
196 | 226 | "clean", |
197 | 227 | "ts:release_build", |
198 | 228 | "shell:npm_test", |
199 | 229 |
|
| 230 | + "set_live_ga_id", |
| 231 | + "verify_live_ga_id" |
| 232 | + ]); |
| 233 | + grunt.registerTask("pack", [ |
200 | 234 | "set_package_version", |
201 | | - "shell:build_package", |
202 | | - |
203 | | - "copy:package_to_drop_folder", |
204 | | - "copy:package_to_qa_drop_folder" |
| 235 | + "shell:build_package" |
205 | 236 | ]); |
206 | 237 | grunt.registerTask("lint", ["tslint:build"]); |
207 | 238 | grunt.registerTask("all", ["clean", "test", "lint"]); |
|
0 commit comments