diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml index c6f546a485..2aa559a03f 100644 --- a/.azure-pipelines/azure-pipelines.yml +++ b/.azure-pipelines/azure-pipelines.yml @@ -56,6 +56,19 @@ stages: - test: 3 - test: 4 - test: extra + - stage: Sanity_2_11 + displayName: Sanity 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: 2.11/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 - stage: Sanity_2_10 displayName: Sanity 2.10 dependsOn: [] @@ -99,6 +112,22 @@ stages: - test: 3.7 - test: 3.8 - test: 3.9 + - stage: Units_2_11 + displayName: Units 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.11/units/{0}/1 + targets: + - test: 2.6 + - test: 2.7 + - test: 3.5 + - test: 3.6 + - test: 3.7 + - test: 3.8 + - test: 3.9 - stage: Units_2_10 displayName: Units 2.10 dependsOn: [] @@ -154,6 +183,25 @@ stages: - 1 - 2 - 3 + - stage: Remote_2_11 + displayName: Remote 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.11/{0} + targets: + - name: macOS 11.1 + test: macos/11.1 + - name: RHEL 7.9 + test: rhel/7.9 + - name: RHEL 8.3 + test: rhel/8.3 + - name: FreeBSD 12.2 + test: freebsd/12.2 + groups: + - 1 + - 2 - stage: Remote_2_10 displayName: Remote 2.10 dependsOn: [] @@ -224,6 +272,25 @@ stages: - 1 - 2 - 3 + - stage: Docker_2_11 + displayName: Docker 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.11/linux/{0} + targets: + - name: CentOS 8 + test: centos8 + - name: Fedora 32 + test: fedora33 + - name: openSUSE 15 py3 + test: opensuse15 + - name: Ubuntu 20.04 + test: ubuntu2004 + groups: + - 2 + - 3 - stage: Docker_2_10 displayName: Docker 2.10 dependsOn: [] @@ -270,6 +337,16 @@ stages: parameters: nameFormat: Python {0} testFormat: devel/cloud/{0}/1 + targets: + - test: 3.8 + - stage: Cloud_2_11 + displayName: Cloud 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.11/cloud/{0}/1 targets: - test: 2.7 - test: 3.6 @@ -299,17 +376,22 @@ stages: - Sanity_devel - Sanity_2_9 - Sanity_2_10 + - Sanity_2_11 - Units_devel - Units_2_9 - Units_2_10 + - Units_2_11 - Remote_devel - Remote_2_9 - Remote_2_10 + - Remote_2_11 - Docker_devel - Docker_2_9 - Docker_2_10 + - Docker_2_11 - Cloud_devel - Cloud_2_9 - Cloud_2_10 + - Cloud_2_11 jobs: - template: templates/coverage.yml diff --git a/README.md b/README.md index 0f35d7d753..935f0ecabd 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ You can find [documentation for this collection on the Ansible docs site](https: ## Tested with Ansible -Tested with the current Ansible 2.9 and 2.10 releases and the current development version of Ansible. Ansible versions before 2.9.10 are not supported. +Tested with the current Ansible 2.9, ansible-base 2.10 and ansible-core 2.11 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported. ## External requirements diff --git a/shippable.yml b/shippable.yml index bb907d21b1..7cbbdc24e7 100644 --- a/shippable.yml +++ b/shippable.yml @@ -13,6 +13,11 @@ matrix: - env: T=devel/sanity/3 - env: T=devel/sanity/4 + - env: T=2.11/sanity/1 + - env: T=2.11/sanity/2 + - env: T=2.11/sanity/3 + - env: T=2.11/sanity/4 + - env: T=2.10/sanity/1 - env: T=2.10/sanity/2 - env: T=2.10/sanity/3 diff --git a/tests/sanity/ignore-2.12.txt b/tests/sanity/ignore-2.12.txt new file mode 100644 index 0000000000..547a788be0 --- /dev/null +++ b/tests/sanity/ignore-2.12.txt @@ -0,0 +1,158 @@ +plugins/module_utils/compat/ipaddress.py no-assert +plugins/module_utils/compat/ipaddress.py no-unicode-literals +plugins/module_utils/_mount.py future-import-boilerplate +plugins/module_utils/_mount.py metaclass-boilerplate +plugins/modules/cloud/linode/linode.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/linode/linode.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/linode/linode.py validate-modules:undocumented-parameter +plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path +plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen +plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice +plugins/modules/cloud/online/online_server_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/online/online_server_info.py validate-modules:return-syntax-error +plugins/modules/cloud/online/online_user_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/online/online_user_info.py validate-modules:return-syntax-error +plugins/modules/cloud/ovirt/ovirt_affinity_label_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_affinity_label_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_api_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_cluster_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_cluster_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_datacenter_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_datacenter_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_disk_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_disk_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_event_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_external_provider_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_external_provider_facts.py validate-modules:undocumented-parameter +plugins/modules/cloud/ovirt/ovirt_group_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_group_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_host_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_host_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_host_storage_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_host_storage_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_host_storage_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/ovirt/ovirt_network_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_network_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_nic_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_nic_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_permission_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_permission_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_quota_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_quota_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_scheduling_policy_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_scheduling_policy_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_snapshot_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_snapshot_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_storage_domain_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_storage_domain_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_storage_template_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_storage_template_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_storage_template_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/ovirt/ovirt_storage_vm_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_storage_vm_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_storage_vm_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/ovirt/ovirt_tag_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_tag_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_template_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_template_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_user_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_user_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:doc-missing-type +plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed +plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice +plugins/modules/cloud/rackspace/rax_files_objects.py use-argspec-type-path +plugins/modules/cloud/rackspace/rax_mon_notification_plan.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/rackspace/rax_scaling_group.py use-argspec-type-path # fix needed, expanduser() applied to dict values +plugins/modules/cloud/scaleway/scaleway_image_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_image_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_ip_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_ip_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_organization_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_organization_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_security_group_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_security_group_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_server_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_server_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_snapshot_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_snapshot_info.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_volume_facts.py validate-modules:return-syntax-error +plugins/modules/cloud/scaleway/scaleway_volume_info.py validate-modules:return-syntax-error +plugins/modules/cloud/smartos/vmadm.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/smartos/vmadm.py validate-modules:undocumented-parameter +plugins/modules/cloud/spotinst/spotinst_aws_elastigroup.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/spotinst/spotinst_aws_elastigroup.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/spotinst/spotinst_aws_elastigroup.py validate-modules:undocumented-parameter +plugins/modules/cloud/univention/udm_dns_record.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:undocumented-parameter +plugins/modules/cloud/univention/udm_share.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/univention/udm_user.py validate-modules:parameter-list-no-elements +plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-choices-do-not-match-spec +plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-required-mismatch +plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:missing-suboption-docs +plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:parameter-type-not-in-doc +plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:undocumented-parameter +plugins/modules/clustering/consul/consul.py validate-modules:doc-missing-type +plugins/modules/clustering/consul/consul.py validate-modules:undocumented-parameter +plugins/modules/clustering/consul/consul_session.py validate-modules:parameter-state-invalid-choice +plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:parameter-type-not-in-doc # This triggers when a parameter is undocumented +plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:undocumented-parameter # Parameter removed but reason for removal is shown by custom code +plugins/modules/net_tools/ldap/ldap_entry.py validate-modules:doc-missing-type +plugins/modules/net_tools/ldap/ldap_entry.py validate-modules:parameter-type-not-in-doc +plugins/modules/net_tools/ldap/ldap_entry.py validate-modules:undocumented-parameter # Parameter removed but reason for removal is shown by custom code +plugins/modules/notification/grove.py validate-modules:invalid-argument-name +plugins/modules/packaging/language/composer.py validate-modules:parameter-invalid +plugins/modules/packaging/os/apt_rpm.py validate-modules:parameter-invalid +plugins/modules/packaging/os/homebrew.py validate-modules:parameter-invalid +plugins/modules/packaging/os/homebrew_cask.py validate-modules:parameter-invalid +plugins/modules/packaging/os/opkg.py validate-modules:parameter-invalid +plugins/modules/packaging/os/pacman.py validate-modules:parameter-invalid +plugins/modules/packaging/os/redhat_subscription.py validate-modules:return-syntax-error +plugins/modules/packaging/os/slackpkg.py validate-modules:parameter-invalid +plugins/modules/packaging/os/urpmi.py validate-modules:parameter-invalid +plugins/modules/packaging/os/xbps.py validate-modules:parameter-invalid +plugins/modules/remote_management/hpilo/hpilo_boot.py validate-modules:parameter-type-not-in-doc +plugins/modules/remote_management/hpilo/hpilo_info.py validate-modules:parameter-type-not-in-doc +plugins/modules/remote_management/hpilo/hponcfg.py validate-modules:parameter-type-not-in-doc +plugins/modules/remote_management/manageiq/manageiq_policies.py validate-modules:parameter-state-invalid-choice +plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:doc-choices-do-not-match-spec # missing docs on suboptions +plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:doc-missing-type # missing docs on suboptions +plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:parameter-type-not-in-doc # missing docs on suboptions +plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:undocumented-parameter # missing docs on suboptions +plugins/modules/remote_management/manageiq/manageiq_tags.py validate-modules:parameter-state-invalid-choice +plugins/modules/remote_management/stacki/stacki_host.py validate-modules:doc-default-does-not-match-spec +plugins/modules/remote_management/stacki/stacki_host.py validate-modules:parameter-type-not-in-doc +plugins/modules/remote_management/stacki/stacki_host.py validate-modules:undocumented-parameter +plugins/modules/source_control/github/github_deploy_key.py validate-modules:parameter-invalid +plugins/modules/storage/glusterfs/gluster_heal_info.py validate-modules:parameter-type-not-in-doc +plugins/modules/storage/glusterfs/gluster_peer.py validate-modules:parameter-list-no-elements +plugins/modules/storage/glusterfs/gluster_volume.py validate-modules:parameter-list-no-elements +plugins/modules/storage/glusterfs/gluster_volume.py validate-modules:parameter-type-not-in-doc +plugins/modules/storage/netapp/na_ontap_gather_facts.py validate-modules:parameter-state-invalid-choice +plugins/modules/storage/purestorage/purefa_facts.py validate-modules:doc-required-mismatch +plugins/modules/storage/purestorage/purefa_facts.py validate-modules:parameter-list-no-elements +plugins/modules/storage/purestorage/purefa_facts.py validate-modules:return-syntax-error +plugins/modules/storage/purestorage/purefb_facts.py validate-modules:parameter-list-no-elements +plugins/modules/storage/purestorage/purefb_facts.py validate-modules:return-syntax-error +plugins/modules/system/gconftool2.py validate-modules:parameter-state-invalid-choice +plugins/modules/system/iptables_state.py validate-modules:undocumented-parameter +plugins/modules/system/launchd.py use-argspec-type-path # False positive +plugins/modules/system/osx_defaults.py validate-modules:parameter-state-invalid-choice +plugins/modules/system/parted.py validate-modules:parameter-state-invalid-choice +plugins/modules/system/puppet.py use-argspec-type-path +plugins/modules/system/puppet.py validate-modules:doc-default-does-not-match-spec # show_diff is not documented +plugins/modules/system/puppet.py validate-modules:parameter-type-not-in-doc +plugins/modules/system/runit.py validate-modules:parameter-type-not-in-doc +plugins/modules/system/ssh_config.py use-argspec-type-path # Required since module uses other methods to specify path +plugins/modules/system/xfconf.py validate-modules:parameter-state-invalid-choice +plugins/modules/system/xfconf.py validate-modules:return-syntax-error +plugins/modules/web_infrastructure/jenkins_plugin.py use-argspec-type-path +tests/integration/targets/django_manage/files/base_test/simple_project/p1/manage.py compile-2.6 # django generated code +tests/integration/targets/django_manage/files/base_test/simple_project/p1/manage.py compile-2.7 # django generated code +tests/utils/shippable/check_matrix.py replace-urlopen +tests/utils/shippable/timing.py shebang