-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add job matrix generation scripts #1429
Conversation
The following pipelines have been queued for testing: |
Sample pipeline configs passing: https://dev.azure.com/azure-sdk/playground/_build/results?buildId=742512&view=results |
The following pipelines have been queued for testing: |
eng/common/scripts/job-matrix/job-matrix-functions.filter.tests.ps1
Outdated
Show resolved
Hide resolved
The following pipelines have been queued for testing: |
The following pipelines have been queued for testing: |
The following pipelines have been queued for testing: |
Hello @azure-sdk! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
/check-enforcer evaluate |
This PR is a port of functionality that is currently duplicated across the net/java/python repositories. The intent was to settle on an implementation before moving it to the /eng/common/scripts directory. After merge to this location, I'll update the net/java/python and js repos to point to the
eng/common/scripts
location and remove the scripts fromeng/scripts
.Here is the PR text used against the other repos for reference:
This adds scripts, docs and samples supporting dynamic, cross-product matrix generation for azure pipeline jobs.
It aims to replicate the cross-product matrix functionality in github actions,
but also adds some additional features like sparse matrix generation, cross-product includes and excludes, parameter grouping and matrix filters.
This functionality is made possible by the ability for the azure pipelines yaml to take a dynamic variable as an input
for a job matrix definition (see the code sample at the bottom of the linked section).
See the README.md file for more details on the config file syntax and usage, as well as implementation details.
The tests (
test-matrix-functions.tests.ps1
) contain a lot of detail on expected data structures at various processing stages. The-
test-matrix-functions.ps1` file could perhaps be split up or use some more organization, so let me know if it's hard to navigate.Example:
Sparse matrix job generation in a pipeline: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=705622&view=results
Related discussion: microsoft/azure-pipelines-yaml#20