github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/model/testdata/matrix_python.yml (about)

     1  # This is a simple matrix definition for our new python driver "Mongython".
     2  # We have several test suites (not defined in this example) we would like to run
     3  # on combinations of operating system, python interpreter, and the inclusion of 
     4  # python C extensions.
     5  
     6  axes:
     7    # we test our fake python driver on Linux and Windows
     8  - id: os 
     9    display_name: "OS"
    10    values:
    11    - id: linux
    12      display_name: "Linux"
    13      run_on: centos6-perf
    14    - id: windows
    15      display_name: "Windows 95"
    16      run_on: windows95-test
    17  
    18    # we run our tests against python 2.6 and 3.0, along with
    19    # external implementations pypy and jython
    20  - id: python
    21    display_name: "Python Implementation"
    22    values:
    23    - id: "python26"
    24      display_name: "2.6"
    25      variables:
    26        # this variable will be used to tell the tasks what executable to run
    27        pybin: "/path/to/26"
    28    - id: "python3"
    29      display_name: "3.0"
    30      variables:
    31        pybin: "/path/to/3"
    32    - id: "pypy"
    33      display_name: "PyPy"
    34      variables:
    35        pybin: "/path/to/pypy"
    36    - id: "jython"
    37      display_name: "Jython"
    38      variables:
    39        pybin: "/path/to/jython"
    40  
    41    # we must test our code both with and without C libraries
    42  - id: c-extensions
    43    display_name: "C Extensions"
    44    values:
    45    - id: "with-c"
    46      display_name: "with C extensions"
    47      variable:
    48        # this variable tells a test whether or not to link against C code
    49        use_c: true
    50    - id: "without-c"
    51      display_name: "without C extensions"
    52      variable:
    53        use_c: false
    54  
    55  buildvariants:
    56  - matrix_name: "tests"
    57    matrix_spec: {"os": "*", "python": "*", "c-extensions": "*"}
    58    exclude_spec:
    59      # pypy and jython do not support C extensions, so we disable those variants
    60      python: ["pypy", "jython"]
    61      c-extensions: with-c
    62      os: "*"
    63    display_name: "${os} Python ${python} (${c-extensions})" 
    64    tasks : "!.static"
    65    rules:
    66    # let's say we have an LDAP auth task that requires a C library to work on Windows,
    67    # here we can remove that task for all windows variants without c extensions
    68    - if:
    69        os: windows
    70        c-extensions: "without-c"
    71        python: "*"
    72      then:
    73        remove_tasks: ".ldap"
    74    # let's only run "lint" on one of our variants
    75    - if:
    76        os: linux
    77        c-extensions: "with-c"
    78        python: "python3"
    79      then:
    80        add_tasks: "lint"
    81  
    82  tasks:
    83  - name: compile
    84  - name: lint
    85    tags: "static"
    86  - name: unit
    87  - name: integration_26
    88  - name: integration_30
    89  - name: integration_32
    90  - name: integration_34
    91  - name: ssl_auth
    92    tags: ["auth"]
    93  - name: ldap_auth
    94    tags: ["auth", "ldap"]