[Twisted-Python] Azure Pipelines
Kyle Altendorf
sda at fstab.net
Sun Jun 23 09:11:09 MDT 2019
On 2019-06-22 14:05, Amber Brown wrote:
> On 22/6/19 9:59 am, Kyle Altendorf wrote:
>>
>> Hmm... I'm running Python inside a build to generate the matrix for
>> that build (with a yaml file for a pipeline). Now I'm curious what
>> matrixing is being used that isn't supported yet. But perhaps it
>> isn't worth bothering to work through.
>>
>> Cheers,
>> -kyle
>
> It now says:
>
> #Multi-configuration and multi-agent job options are not exported to
> YAML. Configure these options using documentation guidance:
> https://docs.microsoft.com/vsts/pipelines/process/phases
>
> So maybe it'd work? Anyone want to volunteer to see? :)
I don't know what our setup is now so I can't really compare. Do we
have a matrix built from a few axes? Like Windows/macOS and py2.7/3.7
generating 4 builds for us? AFAIK that isn't yet supported.
https://github.com/microsoft/azure-pipelines-yaml/issues/20
But, you can certainly write a job and list out the four (or whatever)
parameter sets you want it to be run against. For romp I went ahead and
implemented a little Python cross matrixer which runs as the first job
and outputs JSON. It's output is used as the matrix def for another job
which does whatever it's supposed to. So there are options anywhere
from hand-coded YAML to build-parameter-dependent on-the-fly-generated
JSON to configure a 'matrix', and whatever in between. I'm guessing at
present we'd be satisfied with just hand-coded YAML parameter sets.
Maybe if we moved all platforms etc to Azure we'd like a generated
matrix (either a manual script when the matrix definition is changed or
in-build generation though that of course adds a bit of build time).
Honestly, I would expect to usually want exceptions to any basic matrix
cross-producting system so just defining it with regular Python code
from the get-go has some upsides.
I need to tweak exttrs a bit and romp has a bit of a specialized purpose
but they are the two examples I have.
https://github.com/altendky/exttr/blob/60aa5d6e9f04631b8e86552620f2d9cd2a0a3a04/azure_job_template.yml#L15-L43
https://github.com/altendky/romp/blob/0b05a7830ba1b02e503dd0004ffdce5e0ae3164f/azure-pipelines.yml#L43
After all that... is this actually what we are talking about when it
comes to matrixing?
Cheers,
-kyle
More information about the Twisted-Python
mailing list