I need a matrix job that generates two jobs. One for arm64, one for arm32v7. There’s 4 parameters, and each parameter has two values (one for arm32, one for arm64.) This is the syntax I’ve been using on github actions:
What you are describing is more of an array or list type, rather than a matrix and past posts indicate that circleci does not offer that type of parameter.
Current workarounds are messy and so not worth worrying about for a small number of values. They would include csv or json based strings being passed to a shell script to process the info and then create a config.yml file dynamically than can then be called - all rather a lot of work compared to being able to directly process the original example you gave.
As you have discovered, CircleCI will create jobs for all combinations of the parameters you specify under a matrix.
You can specify an exclude key and specify pairs of parameters to exclude, but this will quickly get messy as you would have to exclude 14 combinations. As a reference, this is what it would look like to exclude only 2 combinations:
Workarounds such as the ones @rit1010 mentioned are definitely possible, but in your case it would be easiest to specify the job twice, and pass in the specific parameter values.