@@ -4,8 +4,10 @@ var shell = require('shelljs');
4
4
var grunt = require ( 'grunt' ) ;
5
5
var spawn = require ( 'child_process' ) . spawn ;
6
6
var semver = require ( 'semver' ) ;
7
+ var versionInfo = require ( '../versions/version-info' ) ;
8
+
7
9
var _ = require ( 'lodash' ) ;
8
- var version , pkg ;
10
+
9
11
var CSP_CSS_HEADER = '/* Include this file in your html if you are using the CSP mode. */\n\n' ;
10
12
11
13
var PORT_MIN = 8000 ;
@@ -23,23 +25,6 @@ var getRandomPorts = function() {
23
25
] ;
24
26
} ;
25
27
26
- var getPackage = function ( ) {
27
- if ( ! pkg ) {
28
-
29
- // Search up the folder hierarchy for the first package.json
30
- var packageFolder = path . resolve ( '.' ) ;
31
- while ( ! fs . existsSync ( path . join ( packageFolder , 'package.json' ) ) ) {
32
- var parent = path . dirname ( packageFolder ) ;
33
- if ( parent === packageFolder ) { break ; }
34
- packageFolder = parent ;
35
- }
36
- pkg = JSON . parse ( fs . readFileSync ( path . join ( packageFolder , 'package.json' ) , 'UTF-8' ) ) ;
37
-
38
- }
39
-
40
- return pkg ;
41
- } ;
42
-
43
28
44
29
module . exports = {
45
30
@@ -50,160 +35,6 @@ module.exports = {
50
35
} ,
51
36
52
37
53
- getGitRepoInfo : function ( ) {
54
- var GITURL_REGEX = / ^ h t t p s : \/ \/ g i t h u b .c o m \/ ( [ ^ \/ ] + ) \/ ( .+ ) .g i t $ / ;
55
- var match = GITURL_REGEX . exec ( getPackage ( ) . repository . url ) ;
56
- var git = {
57
- owner : match [ 1 ] ,
58
- repo : match [ 2 ]
59
- } ;
60
- return git ;
61
- } ,
62
-
63
-
64
- getVersion : function ( ) {
65
- if ( version ) return version ;
66
-
67
- try {
68
-
69
- var gitTag = getTagOfCurrentCommit ( ) ;
70
- var semVerVersion , codeName , fullVersion ;
71
- if ( gitTag ) {
72
- // tagged release
73
- fullVersion = semVerVersion = semver . valid ( gitTag ) ;
74
- codeName = getTaggedReleaseCodeName ( gitTag ) ;
75
- } else {
76
- // snapshot release
77
- semVerVersion = getSnapshotVersion ( ) ;
78
- fullVersion = semVerVersion + '-' + getSnapshotSuffix ( ) ;
79
- codeName = 'snapshot' ;
80
- }
81
-
82
- var versionParts = semVerVersion . match ( / ( \d + ) \. ( \d + ) \. ( \d + ) / ) ;
83
-
84
- version = {
85
- full : fullVersion ,
86
- major : versionParts [ 1 ] ,
87
- minor : versionParts [ 2 ] ,
88
- dot : versionParts [ 3 ] ,
89
- codename : codeName ,
90
- cdn : getPackage ( ) . cdnVersion
91
- } ;
92
-
93
- // Stable versions have an even minor version
94
- version . isStable = version . minor % 2 === 0 ;
95
-
96
- return version ;
97
-
98
- } catch ( e ) {
99
- grunt . fail . warn ( e ) ;
100
- }
101
-
102
- function getTagOfCurrentCommit ( ) {
103
- var gitTagResult = shell . exec ( 'git describe --exact-match' , { silent :true } ) ;
104
- var gitTagOutput = gitTagResult . output . trim ( ) ;
105
- var branchVersionPattern = new RegExp ( getPackage ( ) . branchVersion . replace ( '.' , '\\.' ) . replace ( '*' , '\\d+' ) ) ;
106
- if ( gitTagResult . code === 0 && gitTagOutput . match ( branchVersionPattern ) ) {
107
- return gitTagOutput ;
108
- } else {
109
- return null ;
110
- }
111
- }
112
-
113
- function getTaggedReleaseCodeName ( tagName ) {
114
- var tagMessage = shell . exec ( 'git cat-file -p ' + tagName + ' | grep "codename"' , { silent :true } ) . output ;
115
- var codeName = tagMessage && tagMessage . match ( / c o d e n a m e \( ( .* ) \) / ) [ 1 ] ;
116
- if ( ! codeName ) {
117
- throw new Error ( "Could not extract release code name. The message of tag " + tagName +
118
- " must match '*codename(some release name)*'" ) ;
119
- }
120
- return codeName ;
121
- }
122
-
123
- function getSnapshotVersion ( ) {
124
- var oldTags = shell . exec ( 'git tag -l v' + getPackage ( ) . branchVersion , { silent :true } ) . output . trim ( ) . split ( '\n' ) ;
125
- // ignore non semver versions.
126
- oldTags = oldTags . filter ( function ( version ) {
127
- return version && semver . valid ( version ) ;
128
- } ) ;
129
- if ( oldTags . length ) {
130
- oldTags . sort ( semver . compare ) ;
131
- semVerVersion = oldTags [ oldTags . length - 1 ] ;
132
- if ( semVerVersion . indexOf ( '-' ) !== - 1 ) {
133
- semVerVersion = semver . inc ( semVerVersion , 'prerelease' ) ;
134
- } else {
135
- semVerVersion = semver . inc ( semVerVersion , 'patch' ) ;
136
- }
137
- } else {
138
- semVerVersion = semver . valid ( getPackage ( ) . branchVersion . replace ( / \* / g, '0' ) ) ;
139
- }
140
- return semVerVersion ;
141
- }
142
-
143
- function getSnapshotSuffix ( ) {
144
- var jenkinsBuild = process . env . TRAVIS_BUILD_NUMBER || process . env . BUILD_NUMBER || 'local' ;
145
- var hash = shell . exec ( 'git rev-parse --short HEAD' , { silent : true } ) . output . replace ( '\n' , '' ) ;
146
- return 'build.' + jenkinsBuild + '+sha.' + hash ;
147
- }
148
- } ,
149
-
150
- getPreviousVersions : function ( ) {
151
- var VERSION_REGEX = / ( [ 1 - 9 ] \d * ) \. ( \d + ) \. ( \d + ) (?: - ? r c \. ? ( \d + ) | - ( s n a p s h o t ) ) ? / ;
152
-
153
- // Pad out a number with zeros at the front to make it `digits` characters long
154
- function pad ( num , digits ) {
155
- var zeros = Array ( digits + 1 ) . join ( '0' ) ;
156
- return ( zeros + num ) . slice ( - digits ) ;
157
- }
158
-
159
- function padVersion ( version ) {
160
- // We pad out the version numbers with 0s so they sort nicely
161
- // - Non-Release Candidates get 9999 for their release candidate section to make them appear earlier
162
- // - Snapshots get 9 added to the front to move them to the top of the list
163
- var maxLength = 4 ;
164
- var padded = ( version . snapshot ? '9' : '0' ) + pad ( version . major , maxLength ) +
165
- pad ( version . minor , maxLength ) + pad ( version . dot , maxLength ) +
166
- pad ( version . rc || 9999 , maxLength ) ;
167
- return padded ;
168
- }
169
-
170
- function getVersionFromTag ( tag ) {
171
- var match = VERSION_REGEX . exec ( tag ) ;
172
- if ( match ) {
173
- var version = {
174
- tag : tag ,
175
- major : match [ 1 ] , minor : match [ 2 ] , dot : match [ 3 ] , rc : match [ 4 ] ,
176
- snapshot : ! ! match [ 5 ] && getSnapshotSuffix ( )
177
- } ;
178
-
179
- if ( version . snapshot ) {
180
- version . full = version . major + '.' + version . minor + '.x (edge)' ;
181
- } else {
182
- version . full = version . major + '.' + version . minor + '.' + version . dot +
183
- ( version . rc ? '-rc.' + version . rc : '' ) ;
184
- }
185
-
186
- // Stable versions have an even minor version and are not a release candidate
187
- version . isStable = ! ( version . minor % 2 || version . rc ) ;
188
-
189
- // Versions before 1.0.2 had a different docs folder name
190
- version . docsUrl = 'http://code.angularjs.org/' + version . full + '/docs' ;
191
- if ( version . major < 1 || ( version . major === 1 && version . minor === 0 && version . dot < 2 ) ) {
192
- version . docsUrl += '-' + version . full ;
193
- }
194
-
195
- return version ;
196
- }
197
- }
198
-
199
- var tags = shell . exec ( 'git tag' , { silent : true } ) . output . split ( / \s * \n \s * / ) ;
200
- return _ ( tags )
201
- . map ( getVersionFromTag )
202
- . filter ( ) // getVersion can map to undefined - this clears those out
203
- . sortBy ( padVersion )
204
- . value ( ) ;
205
- } ,
206
-
207
38
startKarma : function ( config , singleRun , done ) {
208
39
var browsers = grunt . option ( 'browsers' ) ;
209
40
var reporters = grunt . option ( 'reporters' ) ;
@@ -374,7 +205,7 @@ module.exports = {
374
205
var mapFile = minFile + '.map' ;
375
206
var mapFileName = mapFile . match ( / [ ^ \/ ] + $ / ) [ 0 ] ;
376
207
var errorFileName = file . replace ( / \. j s $ / , '-errors.json' ) ;
377
- var versionNumber = this . getVersion ( ) . full ;
208
+ var versionNumber = grunt . config ( 'NG_VERSION' ) . full ;
378
209
shell . exec (
379
210
'java ' +
380
211
this . java32flags ( ) + ' ' +
0 commit comments