Skip to content
Commits on Source (4)
  • Rafael Guterres Jeffman's avatar
    upstream CI: Fix test selection for CheckPR pipeline. · c71a2b33
    Rafael Guterres Jeffman authored
    Due to an error on processing Ansible key 'import_tasks' the script that
    creates a list of modules to test is broken making some modules to be
    not tested.
    
    By fixing the handling of 'import_tasks' and module import, the list is
    correct again and the list of modules to be tested now include the ones
    which depend on the modified module.
    c71a2b33
  • Rafael Guterres Jeffman's avatar
    upstream ci: Use a single random seed for spliting tests · 319a0d3d
    Rafael Guterres Jeffman authored
    Dependind on how long it took for the jobs to start, a different seed
    would be used to group tests and tests could either repeat or not be
    selected at all.
    
    By using a seed based on the day the test run reduces the chance of
    using different random seeds, and still allow for the tests to be
    executed in a different order.
    
    The execution in different order is important to identify tests that
    work or fail only if executed after other tests.
    319a0d3d
  • Rafael Guterres Jeffman's avatar
    upstream ci: Run PR tests using a single job. · fe2d17e4
    Rafael Guterres Jeffman authored
    The usual scenario for PR checks is to execute only a few tests, and
    searching for the results in several jobs makes it harder to find
    issues.
    
    By using a single job run the tests would take some more time to
    complete, although not much, as only a small subset is executed, and
    test verification would be easier and less error prone.
    fe2d17e4
  • Thomas Woerner's avatar
    Merge pull request #1148 from rjeffman/fix_checkpr_test_selection · ba7bf0f6
    Thomas Woerner authored
    upstream CI: Fix test selection for CheckPR pipeline.
    ba7bf0f6
......@@ -13,30 +13,12 @@ jobs:
- template: playbook_fast.yml
parameters:
group_number: 1
number_of_groups: 3
number_of_groups: 1
build_number: ${{ parameters.build_number }}
scenario: ${{ parameters.scenario }}
ansible_version: ${{ parameters.ansible_version }}
python_version: '< 3.12'
- template: playbook_fast.yml
parameters:
group_number: 2
number_of_groups: 3
build_number: ${{ parameters.build_number }}
scenario: ${{ parameters.scenario }}
ansible_version: ${{ parameters.ansible_version }}
python_version: '< 3.12'
- template: playbook_fast.yml
parameters:
group_number: 3
number_of_groups: 3
build_number: ${{ parameters.build_number }}
scenario: ${{ parameters.scenario }}
ansible_version: ${{ parameters.ansible_version }}z
python_version: '< 3.12'
# - template: pytest_tests.yml
# parameters:
# build_number: ${{ parameters.build_number }}
......
......@@ -67,6 +67,7 @@ jobs:
--color=yes \
--splits=${{ parameters.number_of_groups }} \
--group=${{ parameters.group_number }} \
--randomly-seed=$(date "+%Y%m%d") \
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
displayName: Run playbook tests
env:
......
......@@ -72,6 +72,7 @@ jobs:
--suppress-no-test-exit-code \
--splits=${{ parameters.number_of_groups }} \
--group=${{ parameters.group_number }} \
--randomly-seed=$(date "+%Y%m%d") \
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
then
[ $? -eq 5 ] && true || false
......
......@@ -69,6 +69,7 @@ jobs:
--color=yes \
--splits=${{ parameters.number_of_groups }} \
--group=${{ parameters.group_number }} \
--randomly-seed=$(date "+%Y%m%d") \
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
displayName: Run playbook tests
env:
......
......@@ -23,8 +23,6 @@ def get_plugins_from_playbook(playbook):
for tasks in task_block:
for task in tasks:
original_task = task
if "." in task:
task = task.split(".")[-1]
if task == "block":
_result.update(get_tasks(tasks["block"]))
elif task in ["include_tasks", "import_tasks"
......@@ -127,8 +125,16 @@ def parse_playbooks(test_module):
"builtins.__import__", side_effect=import_mock
):
# pylint: disable=no-value-for-parameter
loader = SourceFileLoader(playbook, source)
loader.exec_module(types.ModuleType(loader.name))
try:
loader = SourceFileLoader(playbook, source)
loader.exec_module(
types.ModuleType(loader.name)
)
except Exception: # pylint: disable=broad-except
# If import fails, we'll assume there's no
# plugin to be loaded. This is of little risk
# it is rare that a plugin includes another.
pass
# pylint: disable=no-member
candidates = [
f.split(".")[1:]
......