Skip to content
  1. Sep 09, 2022
  2. Sep 08, 2022
  3. Sep 07, 2022
  4. Sep 06, 2022
  5. Sep 05, 2022
  6. Sep 03, 2022
    • Rafael Guterres Jeffman's avatar
      upstream CI: run PR tests only for affected plugins · 25141584
      Rafael Guterres Jeffman authored
      The current workflow for bug fixing or new enhancements in
      ansible-freeipa includes running Ansible playbooks tests for all the
      available plugins for every pull request, even for contained
      modifications.
      
      This patch creates a new workflow for pull requests where only the
      affected plugins are tested in the PR. Changes that might affect other
      parts of the code will trigger tests for the parts affected.
      
      A utility script, utils/filter_tests, is used to set the variables
      IPA_ENABLED_MODULES and IPA_ENABLED_TESTS before executing the tests,
      effectively limiting which tests are executed. The script uses the
      python plugin 'utils/filter_plugins.py' which lists all test modules
      that should be executed for a list of modified source files.
      
      Tests are selected for execution based on the plugin name. For example,
      a change to 'plugins/modules/ipalocation.py' would trigger all playbook
      tests under 'tests/location'. If a test playbook is modified, it is
      scheduled to be executed. Changes to any file under
      'plugins/module_utils' will force the execution of all tests, since any
      module might be affected by that change.
      
      The nature of the change is not evaluated, so a simple typo fix of a
      comment in a file under 'plugins/module_utils' would still schedule all
      test playbooks to be executed.
      
      For roles, any file changed under the role directory would set the role
      to be included in the tests. Playbook tests for roles must be created
      under 'tests/<rolename>_role', where role name in the name of the role
      without 'ipa', for example, the 'ipabackup' role test playbooks would
      be stored under 'tests/backup_role'.
      
      Since there is the possibility that the list of tests to be executed
      might be less than the number of tests groups used (3), a new pytest
      dependency was added, pytest-custom_exit_code, so that having no tests
      to run isn't a test failure.
      
      A new pipeline on Azure needs to be created to use the new test script.
      25141584
  7. Aug 31, 2022
  8. Aug 30, 2022
  9. Aug 29, 2022
  10. Aug 26, 2022
  11. Aug 25, 2022
  12. Aug 24, 2022
    • Rafael Guterres Jeffman's avatar
      upstream ci: Add step to display scenario configuration · abef329b
      Rafael Guterres Jeffman authored
      Since test configuration can vary in different scenarios (test images)
      this patch adds a script to list the scenarios configuration, and a
      step to the playbook test jobs to display the scenario configuration.
      abef329b
    • Rafael Guterres Jeffman's avatar
      upstream ci: Avoid scheduling tests that will not be executed. · 3216f8df
      Rafael Guterres Jeffman authored
      Currently, all tests are scheduled to execution, even those that are
      not executed due to being absent from the list of enabled tests
      configured in the IPA_ENABLED_* variables. The tests that are not
      executed are marked 'skipped'.
      
      This patch change this behavior by not scheduling tests that are not
      configured to be executed. It means that tests not the IPA_DISABLED_*
      lists are not skipped anymore, but not scheduled to be executed. If
      any test is in IPA_ENABLED_* lists, only those tests are marked for
      execution. A side effect is that there is no visual feedback on which
      tests were not executed, as disabled tests are not evaluated anymore.
      
      Also, when IPA_SERVER_HOST was not set, all tests were skipped, but
      an error should raised in this case, as there are no hosts to run the
      tests against.
      
      This patch modifies this behavior to fail the test with an exception if
      IPA_SERVER_HOST is not set.
      3216f8df
    • Rafael Guterres Jeffman's avatar
      upstream ci: Add support for distro specific test configuration. · edccf70b
      Rafael Guterres Jeffman authored
      Sometimes, mostly due do differences in package versions, there are
      some tests that fail on a single distribution which cannot be fixed
      by ansible-freeipa, requiring that the offending package is fixed.
      
      To keep tests running succesfully we have options to disable the
      failing tests, but this changes are globally applied, meaning that, by
      disabling a test, it is disable in all tested distributions.
      
      This patch allows tests to be enabled or disabled for a specific
      distribution, by setting the configuration on the 'variable' template
      for the specific testing scenario.
      edccf70b