File: //usr/lib/python3.9/site-packages/ansible_collections/azure/azcollection/pr-pipelines.yml
parameters:
- name: PYTHON_VER
displayName: 'Python Version'
type: string
default: "3.8"
values:
- "2.7"
- "3.6"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- name: ANSIBLE_VER
displayName: 'Ansible Version'
type: string
default: "2.12"
values:
- "2.9"
- "2.10"
- "2.11"
- "2.12"
- "2.13"
- "2.14"
- "devel"
- name: MODULE_NAME
displayName: 'Test Module'
type: string
default: 'all'
values:
- 'all'
- 'sanity'
- 'azure_rm_adapplication'
- "azure_rm_acs"
- "azure_rm_adgroup"
- "azure_rm_aduser"
- "azure_rm_aks"
- "azure_rm_aksagentpool"
- "azure_rm_apimanagement"
- "azure_rm_appgateway"
- "azure_rm_appserviceplan"
- "azure_rm_automationaccount"
- "azure_rm_automationrunbook"
- "azure_rm_autoscale"
- "azure_rm_availabilityset"
- "azure_rm_azurefirewall"
- "azure_rm_apimanagementservice"
- "azure_rm_batchaccount"
- "azure_rm_backuppolicy"
- "azure_rm_cdnprofile"
- "azure_rm_containerinstance"
- "azure_rm_containerregistry"
- "azure_rm_containerregistrytag"
- "azure_rm_cosmosdbaccount"
- "azure_rm_datalakestore"
- "azure_rm_ddosprotectionplan"
- "azure_rm_deployment"
- "azure_rm_diskencryptionset"
- "azure_rm_dnsrecordset"
- "azure_rm_dnszone"
- "azure_rm_eventhub"
- "azure_rm_expressroute"
- "azure_rm_firewallpolicy"
- "azure_rm_functionapp"
- "azure_rm_gallery"
- "azure_rm_hdinsightcluster"
- "azure_rm_hostgroup"
- "azure_rm_image"
- "azure_rm_iothub"
- "azure_rm_ipgroup"
- "azure_rm_keyvault"
- "azure_rm_keyvaultkey"
- "azure_rm_keyvaultsecret"
- "azure_rm_loadbalancer"
- "azure_rm_loganalyticsworkspace"
- "azure_rm_manageddisk"
- "azure_rm_managementgroup"
- "azure_rm_mariadbserver"
- "azure_rm_monitordiagnosticsetting"
- "azure_rm_monitorlogprofile"
- "azure_rm_multiplemanageddisks"
- "azure_rm_mysqlserver"
- "azure_rm_natgateway"
- "azure_rm_networkinterface"
- "azure_rm_notificationhub"
- "azure_rm_openshiftmanagedcluster"
- "azure_rm_postgresqlserver"
- "azure_rm_privatednsrecordset"
- "azure_rm_privatednszone"
- "azure_rm_privateendpoint"
- "azure_rm_privateendpointdnszonegroup"
- "azure_rm_privatelinkservice"
- "azure_rm_privatednszonelink"
- "azure_rm_publicipaddress"
- "azure_rm_proximityplacementgroup"
- "azure_rm_rediscache"
- "azure_rm_resource"
- "azure_rm_resourcegroup"
- "azure_rm_routetable"
- "azure_rm_roleassignment"
- "azure_rm_roledefinition"
- "azure_rm_registrationassignment"
- "azure_rm_registrationdefinition"
- "azure_rm_cognitivesearch"
- "azure_rm_securitygroup"
- "azure_rm_servicebus"
- "azure_rm_sqlserver"
- "azure_rm_storageaccount"
- "azure_rm_storageblob"
- "azure_rm_storageshare"
- "azure_rm_subnet"
- "azure_rm_subscription"
- "azure_rm_trafficmanagerprofile"
- "azure_rm_virtualmachine"
- "azure_rm_virtualmachineextension"
- "azure_rm_virtualmachineimage_info"
- "azure_rm_virtualmachinescaleset"
- "azure_rm_virtualmachinesize_info"
- "azure_rm_virtualnetwork"
- "azure_rm_virtualnetworkgateway"
- "azure_rm_virtualnetworkpeering"
- "azure_rm_virtualwan"
- "azure_rm_vpnsite"
- "azure_rm_virtualhub"
- "azure_rm_virtualhubconnection"
- "azure_rm_backupazurevm"
- "azure_rm_recoveryservicesvault"
- "azure_rm_vmbackuppolicy"
- "azure_rm_webapp"
- "azure_rm_webappvnetconnection"
- "azure_rm_webappaccessrestriction"
- "azure_rm_workspace"
- "azure_rm_datafactory"
- "azure_rm_bastionhost"
- "azure_rm_devtestlab"
- "azure_rm_sqlmanagedinstance"
- "azure_rm_vmssnetworkinterface_info"
- "inventory_azure"
- "setup_azure"
trigger: none
pr:
- dev
pool:
name: pool-ubuntu-2004
jobs:
- job: CreateResourceGroups
steps:
- bash: |
echo "##vso[task.setvariable variable=resource_group;isOutput=true]ansibletest-$(uuidgen)"
echo "##vso[task.setvariable variable=resource_group_secondary;isOutput=true]ansibletest2-$(uuidgen)"
echo "##vso[task.setvariable variable=resource_group_datalake;isOutput=true]ansibletest-$(uuidgen)"
name: setvar
- bash: |
echo "Generate test resource group $(setvar.resource_group), $(setvar.resource_group_secondary), $(setvar.resource_group_datalake)"
- task: AzureCLI@2
inputs:
azureSubscription: '$(SUBSCRIPTION_FULL_NAME)'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az group create -l eastus -n $(setvar.resource_group)
az group create -l eastus -n $(setvar.resource_group_secondary)
az group create -l eastus2 -n $(setvar.resource_group_datalake)
- job: RunTests
dependsOn: CreateResourceGroups
timeoutInMinutes: 120
variables:
TEST_RESOURCE_GROUP: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group'] ]
TEST_RESOURCE_GROUP_SECONDARY: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_secondary'] ]
TEST_RESOURCE_GROUP_DATALAKE: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_datalake'] ]
strategy:
matrix:
"Python${{ parameters.PYTHON_VER }}_sanity":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: 'sanity'
"Python${{ parameters.PYTHON_VER }}_1":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '1'
"Python${{ parameters.PYTHON_VER }}_2":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '2'
"Python${{ parameters.PYTHON_VER }}_3":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '3'
"Python${{ parameters.PYTHON_VER }}_4":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '4'
"Python${{ parameters.PYTHON_VER }}_5":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '5'
"Python${{ parameters.PYTHON_VER }}_6":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '6'
"Python${{ parameters.PYTHON_VER }}_7":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '7'
"Python${{ parameters.PYTHON_VER }}_9":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '9'
"Python${{ parameters.PYTHON_VER }}_10":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '10'
"Python${{ parameters.PYTHON_VER }}_11":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '11'
"Python${{ parameters.PYTHON_VER }}_12":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '12'
"Python${{ parameters.PYTHON_VER }}_13":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '13'
"Python${{ parameters.PYTHON_VER }}_14":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '14'
"Python${{ parameters.PYTHON_VER }}_15":
python.version: '${{ parameters.PYTHON_VER }}'
test.key: '15'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python $(python.version)'
inputs:
versionSpec: '$(python.version)'
- script: tests/utils/ado/ado.sh $(test.key) ${{ parameters.PYTHON_VER }} ${{ parameters.ANSIBLE_VER }} ${{ parameters.MODULE_NAME }}
env:
SHIPPABLE_BUILD_DIR: $(Build.Repository.LocalPath)
AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)
AZURE_SECRET: $(AZURE_SECRET)
AZURE_SUBSCRIPTION_ID: $(AZURE_SUBSCRIPTION_ID)
AZURE_SUBSCRIPTION_SEC_ID: $(AZURE_SUBSCRIPTION_SEC_ID)
AZURE_TENANT: $(AZURE_TENANT)
AZURE_PRINCIPAL_ID: $(AZURE_PRINCIPAL_ID)
AZURE_MANAGED_BY_TENANT_ID: $(AZURE_MANAGED_BY_TENANT_ID)
AZURE_ROLE_DEFINITION_ID: $(AZURE_ROLE_DEFINITION_ID)
RESOURCE_GROUP: $(TEST_RESOURCE_GROUP)
RESOURCE_GROUP_SECONDARY: $(TEST_RESOURCE_GROUP_SECONDARY)
RESOURCE_GROUP_DATALAKE: $(TEST_RESOURCE_GROUP_DATALAKE)
displayName: 'Running Tests'
- job: CleanupResourceGroups
dependsOn:
- CreateResourceGroups
- RunTests
condition: always()
variables:
TEST_RESOURCE_GROUP: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group'] ]
TEST_RESOURCE_GROUP_SECONDARY: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_secondary'] ]
TEST_RESOURCE_GROUP_DATALAKE: $[ dependencies.CreateResourceGroups.outputs['setvar.resource_group_datalake'] ]
steps:
- task: AzureCLI@2
inputs:
azureSubscription: '$(SUBSCRIPTION_FULL_NAME)'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az group delete -n $(TEST_RESOURCE_GROUP) --yes --no-wait
az group delete -n $(TEST_RESOURCE_GROUP_SECONDARY) --yes --no-wait
az group delete -n $(TEST_RESOURCE_GROUP_DATALAKE) --yes --no-wait