1
1
import org.apache.tools.ant.taskdefs.condition.Os
2
2
3
3
gradle. projectsEvaluated {
4
- // to find out which releases are being generated we hook into the process
5
- // resources task. From the "assetsDir" property we can extract in which
6
- // assets folder the task is operating. This folder matches where react native
7
- // will place the bundles.
8
- def releasesForFolder = [:];
4
+ def releases = [];
9
5
android. applicationVariants. each { variant ->
10
6
def releaseName = " ${ variant.getApplicationId()} -${ variant.getVersionName()} " ;
11
7
variant. outputs. each { output ->
12
8
def processTask = output. getProcessResources();
13
- def resDir = processTask. getResDir();
14
- def releases = releasesForFolder. get(resDir. toString()) as List<String > ;
15
- if (releases == null ) {
16
- releases = [];
17
- releasesForFolder. put(resDir. toString(), releases);
18
- }
19
9
def versionCode = output. getVersionCode();
20
- releases. add([releaseName, versionCode]);
10
+ releases. add([output . getName(), releaseName, versionCode]);
21
11
}
22
12
}
23
13
@@ -28,27 +18,6 @@ gradle.projectsEvaluated {
28
18
task. name. startsWith(" bundle" ) && task. name. endsWith(" JsAndAssets" )
29
19
}
30
20
bundleTasks. each { bundleTask ->
31
- def outputs = bundleTask. getOutputs();
32
- def allReleases = [:];
33
- outputs. getFiles(). each { file ->
34
- def releases = releasesForFolder. get(file. toString());
35
- if (releases != null ) {
36
- releases. each { item ->
37
- def codes = allReleases[item[0 ]] as List<String > ;
38
- if (codes == null ) {
39
- codes = [];
40
- allReleases[item[0 ]] = codes;
41
- }
42
- codes. add(item[1 ]);
43
- }
44
- }
45
- }
46
-
47
- // this really should not happen but better be safe than sorry.
48
- if (allReleases. size() == 0 ) {
49
- return ;
50
- }
51
-
52
21
def props = bundleTask. getProperties();
53
22
def cmd = props. get(" commandLine" ) as List<String > ;
54
23
def cmdArgs = props. get(" args" ) as List<String > ;
@@ -81,22 +50,30 @@ gradle.projectsEvaluated {
81
50
bundleTask. setProperty(" commandLine" , cmd);
82
51
bundleTask. setProperty(" args" , cmdArgs);
83
52
84
- allReleases . each { releaseName , versionCodes ->
53
+ releases . each { variant , releaseName , versionCodes ->
85
54
def cliTask = tasks. create(
86
- name : bundleTask. getName() + " SentryUpload" ,
55
+ name : bundleTask. getName() + variant + " SentryUpload" ,
87
56
type : Exec ) {
88
57
description = " upload debug symbols to sentry"
89
58
90
59
workingDir reactRoot
91
60
environment(" SENTRY_PROPERTIES" , propertiesFile)
61
+
92
62
def args = [
93
- cliExecutable,
94
- " react-native" ,
95
- " gradle" ,
96
- " --bundle" , bundleOutput,
97
- " --sourcemap" , sourcemapOutput,
98
- " --release" , releaseName
63
+ cliExecutable
99
64
];
65
+ if (project. hasProperty(" sentryloglevel" ) ) {
66
+ args. push(" --log-level" );
67
+ args. push(sentryloglevel);
68
+ }
69
+ args. push(" react-native" );
70
+ args. push(" gradle" );
71
+ args. push(" --bundle" );
72
+ args. push(bundleOutput);
73
+ args. push(" --sourcemap" );
74
+ args. push(sourcemapOutput);
75
+ args. push(" --release" );
76
+ args. push(releaseName);
100
77
101
78
versionCodes. each { versionCode ->
102
79
args. add(" --dist" );
0 commit comments