I have a pretty complex matrix:
- e2e: name: << matrix.target >>-k8s:<< matrix.k8sVersion >>-v6:<< matrix.ipv6 >> matrix: alias: test/e2e parameters: k8sVersion: [v1.19.16-k3s1, v1.21.7-k3s1, kind] ipv6: [true, false] target: [test/e2e-kubernetes, test/e2e-universal, test/e2e-multizone]
Some of these entries don’t make sense together (for example there’s no support for v1.19 and ipv6.
I therefore would like to use the exclude feature.
Unfortunately it seems like partial matches don’t work.
I’d like to do:
exclude: - ipv6: true k8sVersion: v1.19.16-k3s1
And it would exclude all combinations for each: test/e2e-kubernetes, test/e2e-universal, test/e2e-multizone .
The only workaround I found is either adding conditions inside the job with unless but it still starts jobs that won’t do anything (I have a single echo step to not have circle fail).
Other option is to iterate all invalid combinations in an exclude which ends up being many and error prone.