Skip to content

Commit ab10871

Browse files
authored
added inclusive filter (#7)
* added inclusive filter * added install-missing-android-tools
1 parent e68e88a commit ab10871

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

bitrise.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ workflows:
3535
- script:
3636
inputs:
3737
- content: git clone -b no-failures $SAMPLE_REPO_GIT_CLONE_URL .
38+
- install-missing-android-tools:
39+
inputs:
40+
- gradlew_path: ./gradlew
3841
- path::./:
3942
title: Test simple android project
4043

@@ -53,6 +56,9 @@ workflows:
5356
- script:
5457
inputs:
5558
- content: git clone -b no-failures $SAMPLE_REPO_GIT_CLONE_URL .
59+
- install-missing-android-tools:
60+
inputs:
61+
- gradlew_path: ./gradlew
5662
- path::./:
5763
title: Test simple repo
5864

main.go

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,33 @@ func exportArtifacts(deployDir string, artifacts []gradle.Artifact) error {
7575
return nil
7676
}
7777

78+
func filterVariants(module, variant string, variantsMap gradle.Variants) (gradle.Variants, error) {
79+
// if module set: drop all the other modules
80+
if module != "" {
81+
v, ok := variantsMap[module]
82+
if !ok {
83+
return nil, fmt.Errorf("module not found: %s", module)
84+
}
85+
variantsMap = gradle.Variants{module: v}
86+
}
87+
// if variant not set: use all variants
88+
if variant == "" {
89+
return variantsMap, nil
90+
}
91+
filteredVariants := gradle.Variants{}
92+
for m, variants := range variantsMap {
93+
for _, v := range variants {
94+
if strings.ToLower(v) == strings.ToLower(variant) {
95+
filteredVariants[m] = append(filteredVariants[m], v)
96+
}
97+
}
98+
}
99+
if len(filteredVariants) == 0 {
100+
return nil, fmt.Errorf("variant: %s not found in any module", variant)
101+
}
102+
return filteredVariants, nil
103+
}
104+
78105
func main() {
79106
var config Configs
80107

@@ -104,7 +131,10 @@ func main() {
104131
failf("Failed to fetch variants, error: %s", err)
105132
}
106133

107-
filteredVariants := variants.Filter(config.Module, config.Variant)
134+
filteredVariants, err := filterVariants(config.Module, config.Variant, variants)
135+
if err != nil {
136+
failf("Failed to find buildable variants, error: %s", err)
137+
}
108138

109139
for module, variants := range variants {
110140
log.Printf("%s:", module)
@@ -118,17 +148,6 @@ func main() {
118148
}
119149
fmt.Println()
120150

121-
if len(filteredVariants) == 0 {
122-
if config.Variant != "" {
123-
if config.Module == "" {
124-
failf("Variant (%s) not found in any module", config.Variant)
125-
} else {
126-
failf("No variant matching for (%s) in module: [%s]", config.Variant, config.Module)
127-
}
128-
}
129-
failf("Module not found: %s", config.Module)
130-
}
131-
132151
started := time.Now()
133152

134153
args, err := shellquote.Split(config.Arguments)

0 commit comments

Comments
 (0)