##// END OF EJS Templates
working on publications
cin -
r95:cd6fdbb2f173 ts-plugin
parent child
Show More
@@ -1,256 +1,293
1 plugins {
1 plugins {
2 id "org.implab.gradle-typescript" version "1.0.1-rc3"
2 id "org.implab.gradle-typescript" version "1.0.1-rc3"
3 id "ivy-publish"
3 }
4 }
4
5
5 // если версия явно не заданы вычисляем ее из тэга ревизии v.{num}***
6 // если версия явно не заданы вычисляем ее из тэга ревизии v.{num}***
6 // результатом будет версия '{num}.{distance}' где distance - расстояние от
7 // результатом будет версия '{num}.{distance}' где distance - расстояние от
7 // текущей ревизии до ревизии с тэгом
8 // текущей ревизии до ревизии с тэгом
8 def tagDistance = 0;
9 def tagDistance = 0;
9
10
10 ext {
11 ext {
11 packageName = "@$npmScope/$name"
12 packageName = "@$npmScope/$name"
12 lint = project.hasProperty('lint') ? lint : false
13 lint = project.hasProperty('lint') ? lint : false
13 }
14 }
14
15
15 if (!version) {
16 if (!version) {
16
17
17 def rev = ["hg", "log", "-r", ".", "--template", "{latesttag('re:^v') % '{tag}-{distance}'}"].execute().text.trim();
18 def rev = ["hg", "log", "-r", ".", "--template", "{latesttag('re:^v') % '{tag}-{distance}'}"].execute().text.trim();
18
19
19 def tagVersion;
20 def tagVersion;
20
21
21 def match = (rev =~ /^v(\d+\.\d+\.\d+).*-(\d+)$/);
22 def match = (rev =~ /^v(\d+\.\d+\.\d+).*-(\d+)$/);
22
23
23 if (match.size()) {
24 if (match.size()) {
24 tagVersion = match[0][1];
25 tagVersion = match[0][1];
25 tagDistance = match[0][2].toInteger();
26 tagDistance = match[0][2].toInteger();
26 } else {
27 } else {
27 throw new Exception("A version must be specied");
28 throw new Exception("A version must be specied");
28 }
29 }
29
30
30 version = tagVersion;
31 version = tagVersion;
31
32
32 if (tagDistance > 0)
33 if (tagDistance > 0)
33 version++;
34 version++;
34 } else {
35 } else {
35 println "explicit version: $version";
36 println "explicit version: $version";
36 }
37 }
37
38
38 if (hasProperty('versionSuffix') && versionSuffix) {
39 if (hasProperty('versionSuffix') && versionSuffix) {
39 version += "-$versionSuffix"
40 version += "-$versionSuffix"
40 }
41 }
41
42
43 configurations {
44
45 }
46
42 sources {
47 sources {
43 amd {
48 amd {
44 typings {
49 typings {
45 srcDir main.output.typingsDir
50 srcDir main.output.typingsDir
46 }
51 }
47 }
52 }
48
53
49 cjs {
54 cjs {
50 typings {
55 typings {
51 srcDir main.output.typingsDir
56 srcDir main.output.typingsDir
52 }
57 }
53 }
58 }
54
59
55 testAmd {
60 testAmd {
56 typings {
61 typings {
57 srcDir main.output.typingsDir
62 srcDir main.output.typingsDir
58 srcDir amd.output.typingsDir
63 srcDir amd.output.typingsDir
59 srcDir test.output.typingsDir
64 srcDir test.output.typingsDir
60 }
65 }
61 }
66 }
62
67
63 testCjs {
68 testCjs {
64 typings {
69 typings {
65 srcDir main.output.typingsDir
70 srcDir main.output.typingsDir
66 srcDir cjs.output.typingsDir
71 srcDir cjs.output.typingsDir
67 srcDir test.output.typingsDir
72 srcDir test.output.typingsDir
68 }
73 }
69 }
74 }
70 }
75 }
71
76
72 typescript {
77 typescript {
73 compilerOptions {
78 compilerOptions {
74 types = []
79 types = []
75 declaration = true
80 declaration = true
76 }
81 }
77 tscCmd = "$projectDir/node_modules/.bin/tsc"
82 tscCmd = "$projectDir/node_modules/.bin/tsc"
78 tsLintCmd = "$projectDir/node_modules/.bin/tslint"
83 tsLintCmd = "$projectDir/node_modules/.bin/tslint"
79 esLintCmd = "$projectDir/node_modules/.bin/eslint"
84 esLintCmd = "$projectDir/node_modules/.bin/eslint"
80 npmCmd = "npm"
85 npmCmd = "npm"
81 }
86 }
82
87
83 tasks.matching{ it.name =~ /^configureTs/ }.configureEach {
88 tasks.matching{ it.name =~ /^configureTs/ }.configureEach {
84 dependsOn "prepare"
89 dependsOn "prepare"
85 }
90 }
86
91
87 tasks.matching{ it.name =~ /^lint/ }.configureEach {
92 tasks.matching{ it.name =~ /^lint/ }.configureEach {
88 onlyIf { lint }
93 onlyIf { lint }
89 }
94 }
90
95
91 task prepare {
96 task prepare {
92
97
93 }
98 }
94
99
95 task printVersion {
100 task printVersion {
96 dependsOn prepare
101 dependsOn prepare
97
102
98 doLast {
103 doLast {
99 println "version: ${-> version}";
104 println "version: ${-> version}";
100 println "tagDistance: ${-> tagDistance}";
105 println "tagDistance: ${-> tagDistance}";
101 println "packageName: ${-> packageName}";
106 println "packageName: ${-> packageName}";
102 println "target: ${-> typescript.compilerOptions.target}";
107 println "target: ${-> typescript.compilerOptions.target}";
103 println "module: ${-> typescript.compilerOptions.module}";
108 println "module: ${-> typescript.compilerOptions.module}";
104 }
109 }
105 }
110 }
106
111
107 task clean {
112 task clean {
108 prepare.mustRunAfter it
113 prepare.mustRunAfter it
109
114
110 doLast {
115 doLast {
111 delete buildDir
116 delete buildDir
112 }
117 }
113 }
118 }
114
119
115 npmPackMeta {
120 npmPackMeta {
116 meta {
121 meta {
117 name = packageName
122 name = packageName
118 }
123 }
119 }
124 }
120
125
121 configureTsCjs {
126 configureTsCjs {
122 dependsOn sources.main.output
127 dependsOn sources.main.output
123 compilerOptions {
128 compilerOptions {
124 types += [ "node" ]
129 types += [ "node" ]
125 }
130 }
126 }
131 }
127
132
128 configureTsAmd {
133 configureTsAmd {
129 dependsOn sources.main.output
134 dependsOn sources.main.output
130 compilerOptions {
135 compilerOptions {
131 types += [ "requirejs", "dojo-typings" ]
136 types += [ "requirejs", "dojo-typings" ]
132 }
137 }
133 }
138 }
134
139
135 test {
140 test {
136 workingDir layout.buildDirectory.dir("test");
141 workingDir layout.buildDirectory.dir("test");
137 commandLine "node", "tests/index.js"
142 commandLine "node", "tests/index.js"
138 }
143 }
139
144
140 task assembleAmd {
145 task assembleAmd {
141 dependsOn sources.amd.output
146 dependsOn sources.amd.output
142 assemble.mustRunAfter it
147 assemble.mustRunAfter it
143
148
144 doLast {
149 doLast {
145 assemble {
150 assemble {
146 from(sources.amd.output.compiledDir)
151 from(sources.amd.output.compiledDir)
147 }
152 }
148 }
153 }
149 }
154 }
150
155
151 task assembleCjs {
156 task assembleCjs {
152 dependsOn sources.cjs.output
157 dependsOn sources.cjs.output
153 assemble.mustRunAfter it
158 assemble.mustRunAfter it
154
159
155 doLast {
160 doLast {
156 assemble {
161 assemble {
157 from(sources.cjs.output.compiledDir)
162 from(sources.cjs.output.compiledDir)
158 }
163 }
159 }
164 }
160 }
165 }
161
166
162 task assembleTestAmd {
167 task assembleTestAmd {
163 dependsOn sources.amd.output
168 dependsOn sources.amd.output
164 dependsOn sources.testAmd.output
169 dependsOn sources.testAmd.output
165 assembleTest.mustRunAfter it
170 assembleTest.mustRunAfter it
166
171
167 doLast {
172 doLast {
168 assembleTest {
173 assembleTest {
169 from(sources.amd.output.compiledDir)
174 from(sources.amd.output.compiledDir)
170 from(sources.testAmd.output.compiledDir)
175 from(sources.testAmd.output.compiledDir)
171 }
176 }
172 }
177 }
173 }
178 }
174
179
175 task assembleTestCjs {
180 task assembleTestCjs {
176 dependsOn sources.cjs.output
181 dependsOn sources.cjs.output
177 dependsOn sources.testCjs.output
182 dependsOn sources.testCjs.output
178 assembleTest.mustRunAfter it
183 assembleTest.mustRunAfter it
179
184
180 doLast {
185 doLast {
181 assembleTest {
186 assembleTest {
182 from(sources.cjs.output.compiledDir)
187 from(sources.cjs.output.compiledDir)
183 from(sources.testCjs.output.compiledDir)
188 from(sources.testCjs.output.compiledDir)
184 }
189 }
185 }
190 }
186 }
191 }
187
192
188 task prepareTargetEs5 {
193 task prepareTargetEs5 {
189 prepare.mustRunAfter it
194 prepare.mustRunAfter it
190
195
191 doLast {
196 doLast {
192 typescript {
197 typescript {
193 compilerOptions {
198 compilerOptions {
194 target = "es5"
199 target = "es5"
195 lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"]
200 lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"]
196 }
201 }
197 }
202 }
198 }
203 }
199 }
204 }
200
205
201 task prepareTargetEsNext {
206 task prepareTargetEsNext {
202 prepare.mustRunAfter it
207 prepare.mustRunAfter it
203
208
204 doLast {
209 doLast {
205 typescript {
210 typescript {
206 compilerOptions {
211 compilerOptions {
207 target = "es2017"
212 target = "es2017"
208 lib = ["es2017", "dom", "scripthost"]
213 lib = ["es2017", "dom", "scripthost"]
209 }
214 }
210 }
215 }
211 }
216 }
212 }
217 }
213
218
214 task prepareNode {
219 task prepareNode {
215 dependsOn prepareTargetEsNext
220 dependsOn prepareTargetEsNext
216 prepare.mustRunAfter it
221 prepare.mustRunAfter it
217
222
218 doLast {
223 doLast {
219 typescript {
224 typescript {
220 compilerOptions {
225 compilerOptions {
221 module = "commonjs"
226 module = "commonjs"
222 }
227 }
223 }
228 }
224 }
229 }
225 }
230 }
226
231
227 task prepareBrowser {
232 task prepareBrowser {
228 dependsOn prepareTargetEs5
233 dependsOn prepareTargetEs5
229 prepare.mustRunAfter it
234 prepare.mustRunAfter it
230
235
231 doLast {
236 doLast {
232 packageName = "@$npmScope/$project.name-amd"
237 packageName = "@$npmScope/$project.name-amd"
233
238
234 typescript {
239 typescript {
235 compilerOptions {
240 compilerOptions {
236 module = "amd"
241 module = "amd"
237 }
242 }
238 }
243 }
239 }
244 }
240 }
245 }
241
246
242 task assembleBrowser {
247 task assembleBrowser {
243 dependsOn prepareBrowser, assembleAmd, assemble
248 dependsOn prepareBrowser, assembleAmd, assemble
244 }
249 }
245
250
246 task assembleNode {
251 task assembleNode {
247 dependsOn prepareNode, assembleCjs, assemble
252 dependsOn prepareNode, assembleCjs, assemble
248 }
253 }
249
254
250 task testBrowser {
255 task testBrowser {
251 dependsOn prepareBrowser, assembleTestAmd, test
256 dependsOn prepareBrowser, assembleTestAmd, test
252 }
257 }
253
258
254 task testNode {
259 task testNode {
255 dependsOn prepareNode, assembleTestCjs, test
260 dependsOn prepareNode, assembleTestCjs, test
261 }
262
263 task packJsTar(type: Tar) {
264 dependsOn assemble;
265
266 archiveBaseName = provider { packageName }
267
268 destinationDirectory = buildDir
269 archiveClassifier = provider { typescript.compilerOptions.module }
270 compression = Compression.GZIP
271
272 from(assemble.outputs)
273
274 doLast {
275 println archiveName;
276 }
277 }
278
279 publishing {
280 publications {
281 local(IvyPublication) {
282 artifact(packJsTar) {
283 type = "js"
284 }
285 }
286 }
287
288 repositories {
289 ivy {
290 url "ivy-repo"
291 }
292 }
256 } No newline at end of file
293 }
@@ -1,6 +1,7
1 group=org.implab
1 version=
2 version=
2 author=Implab team
3 author=Implab team
3 description=Dependency injection, logging, simple and fast text template engine
4 description=Dependency injection, logging, simple and fast text processing tools
4 license=BSD-2-Clause
5 license=BSD-2-Clause
5 repository=https://bitbucket.org/implab/implabjs-core
6 repository=https://bitbucket.org/implab/implabjs-core
6 npmScope=implab No newline at end of file
7 npmScope=implab
@@ -1,13 +1,9
1 var rjs = require('requirejs');
1 var rjs = require('requirejs');
2
2
3 rjs.config({
3 rjs.config({
4 baseUrl: '.',
4 baseUrl: '.',
5 packages: [{
6 name: "dojo",
7 location: "node_modules/dojo"
8 }],
9 nodeRequire: require
5 nodeRequire: require
10 });
6 });
11
7
12
8
13 rjs(['./tests/plan']); No newline at end of file
9 rjs(['./tests/plan']);
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now