|
34 | 34 | - name: build fabric8 istio |
35 | 35 | uses: ./.github/workflows/composites/fabric8-istio |
36 | 36 |
|
37 | | - - name: build with skip tests and skip images |
38 | | - run: ./mvnw -T 1C -s .settings.xml clean install -U -DskipTests -Dskip.build.image=true |
| 37 | + - name: maven build with dry-run for tests |
| 38 | + uses: ./.github/workflows/composites/maven-build-with-dry-run-for-tests |
39 | 39 |
|
40 | 40 | - name: build controllers project |
41 | 41 | uses: ./.github/workflows/composites/build-controllers-project |
@@ -136,86 +136,23 @@ jobs: |
136 | 136 | uses: ./.github/workflows/composites/load-docker-images |
137 | 137 | if: env.BASE_BRANCH != '2.1.x' |
138 | 138 |
|
| 139 | + - name: download tests |
| 140 | + uses: actions/download-artifact@v3 |
| 141 | + with: |
| 142 | + name: tests.txt |
| 143 | + path: /tmp |
| 144 | + |
139 | 145 | - name: run tests |
140 | 146 | env: |
141 | 147 | CURRENT_INDEX: ${{ matrix.current_index }} |
142 | 148 | NUMBER_OF_JOBS: ${{ matrix.number_of_jobs }} |
143 | 149 | run: | |
144 | 150 | |
145 | | - # - find all tests |
146 | | - # - exclude Fabric8IstionIT |
147 | | - # - only take classes that have @Test inside them |
148 | | - # - ignore the ones that have 'abstract class'. we do this because otherwise we would pass |
149 | | - # to -DtestsToRun an abstract class, and it will not run anything. |
150 | | - # - drop the "begining" xxx/src/test/java |
151 | | - # - replace / with . |
152 | | - # - drop last ".java" |
153 | | - # - replace newline with space |
154 | | - # - replace '\n' with ' ' |
155 | | - # exclude all integration tests for branch '2.1.x' via 'grep -v '.*IT.java'' |
156 | | - |
157 | | - echo "base_branch : $BASE_BRANCH" |
158 | | - declare -a PLAIN_TEST_CLASSNAMES |
159 | | - baseBranch=$BASE_BRANCH |
160 | | - if [[ $baseBranch == "2.1.x" ]]; then |
161 | | - |
162 | | - PLAIN_TEST_CLASSNAMES=($(find . -name '*.java' \ |
163 | | - | grep 'src/test/java' \ |
164 | | - | grep -v 'Fabric8IstioIT' \ |
165 | | - | grep -v '.*IT.java' \ |
166 | | - | xargs grep -l '@Test' \ |
167 | | - | xargs grep -L 'abstract class' \ |
168 | | - | sed 's/.*src.test.java.//g' \ |
169 | | - | sed 's@/@.@g' \ |
170 | | - | sed 's/.\{5\}$//' \ |
171 | | - | tr '\n' ' ')) |
172 | | - else |
173 | | - PLAIN_TEST_CLASSNAMES=($(find . -name '*.java' \ |
174 | | - | grep 'src/test/java' \ |
175 | | - | grep -v 'Fabric8IstioIT' \ |
176 | | - | xargs grep -l '@Test' \ |
177 | | - | xargs grep -L 'abstract class' \ |
178 | | - | sed 's/.*src.test.java.//g' \ |
179 | | - | sed 's@/@.@g' \ |
180 | | - | sed 's/.\{5\}$//' \ |
181 | | - | tr '\n' ' ')) |
182 | | - fi |
183 | | -
|
184 | | - # classes that have @Test and are abstract, for example: "LabeledSecretWithPrefixTests" |
185 | | - # - exclude Fabric8IstionIT |
186 | | - # - only take classes that have @Test inside them |
187 | | - # - only take classes that are abstract |
188 | | - # - drop everything up until the last "/" |
189 | | - # - drop ".java" |
190 | | -
|
191 | | - ABSTRACT_TEST_CLASSNAMES_COMMAND="find . -name '*.java' \ |
192 | | - | grep 'src/test/java' \ |
193 | | - | grep -v 'Fabric8IstioIT' \ |
194 | | - | xargs grep -l '@Test' \ |
195 | | - | xargs grep -l 'abstract class' \ |
196 | | - | sed 's/.*\///g' \ |
197 | | - | sed 's/.java//g'" |
198 | | -
|
199 | | - # find classes that extend abstract test classes |
200 | | - DERIVED_FROM_ABSTRACT_CLASSES_COMMAND="find . -name '*.java' \ |
201 | | - | grep 'src/test/java' \ |
202 | | - | grep -v 'Fabric8IstioIT' \ |
203 | | - | xargs grep -l 'extends replace_me ' \ |
204 | | - | sed 's/.*src.test.java.//g' \ |
205 | | - | sed 's@/@.@g' \ |
206 | | - | sed 's/.\{5\}$//' \ |
207 | | - | tr '\n' ' '" |
208 | | -
|
209 | | - while read class_name; do |
210 | | - replaced=$(echo ${DERIVED_FROM_ABSTRACT_CLASSES_COMMAND/replace_me/"$class_name"}) |
211 | | - result=($(eval $replaced)) |
212 | | - PLAIN_TEST_CLASSNAMES+=(${result[@]}) |
213 | | - done < <(eval $ABSTRACT_TEST_CLASSNAMES_COMMAND) |
214 | | -
|
| 151 | + PLAIN_TEST_CLASSNAMES=($(cat /tmp/tests.txt | grep 'spring.cloud.k8s.test.to.run' | awk '{print $3}')) |
215 | 152 | IFS=$'\n' |
216 | | - SORTED_TEST_CLASSNAMES=( $(sort <<< "${PLAIN_TEST_CLASSNAMES[*]} | uniq -u") ) |
| 153 | + SORTED_TEST_CLASSNAMES=( $(sort <<< "${PLAIN_TEST_CLASSNAMES[*]}") ) |
217 | 154 | unset IFS |
218 | | -
|
| 155 | + |
219 | 156 | number_of_tests=${#SORTED_TEST_CLASSNAMES[@]} |
220 | 157 | number_of_jobs=${NUMBER_OF_JOBS} |
221 | 158 | current_index=${CURRENT_INDEX} |
@@ -299,4 +236,3 @@ jobs: |
299 | 236 | -Dmaven.wagon.http.retryHandler.count=3 \ |
300 | 237 | -Dskip.build.image=true |
301 | 238 | fi |
302 | | -
|
0 commit comments