diff --git a/infra/azure/azure-pipelines.yml b/infra/azure/azure-pipelines.yml index 7456b62eb4b8eb79da26553d08b6989cafdb9354..8b915b4cef6f6eddeba0b97f3264b41509ee81d5 100644 --- a/infra/azure/azure-pipelines.yml +++ b/infra/azure/azure-pipelines.yml @@ -5,72 +5,64 @@ trigger: pool: vmImage: 'ubuntu-20.04' -stages: +variables: + ansible_version: "-core >=2.16,<2.17" + ansible_latest: "-core" + ansible_minimum: "-core <2.16" + distros: "fedora-latest,c9s,fedora-rawhide" -# Fedora +stages: -- stage: Fedora_Ansible_Latest +- stage: fedora_latest_ansible_latest dependsOn: [] jobs: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest - ansible_version: "-core" + ansible_version: ${{ variables.ansible_latest }} skip_git_test: true -# Fedora - -- stage: Fedora_Ansible_min_supported +- stage: fedora_latest_ansible_2_15 dependsOn: [] jobs: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest - ansible_version: "-core <2.16" + ansible_version: ${{ variables.ansbile_minimum }} skip_git_test: true -# Fedora +# Supported distros -- stage: Fedora_Latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - skip_git_test: true - ansible_version: "-core >=2.16,<2.17" +- ${{ each distro in split(variables.distros, ',') }}: + - stage: ${{ replace(distro, '-', '_') }}_ansible_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: ${{ distro }} + ansible_version: ${{ variables.ansible_version }} + skip_git_test: true + test_galaxy: false # Galaxy on Fedora -- stage: Galaxy_Fedora_Latest +- stage: galaxy_fedora_latest_ansible_2_16 dependsOn: [] jobs: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest - ansible_version: "-core >=2.16,<2.17" + ansible_version: ${{ variables.ansible_version }} skip_git_test: true test_galaxy: true -# CentOS 9 Stream - -- stage: CentOS_9_Stream - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c9s - ansible_version: "-core >=2.16,<2.17" - skip_git_test: true - -# CentOS 8 Stream +# CentOS 8 Stream, latest supported Ansible version. -- stage: CentOS_8_Stream +- stage: c8s_ansible_2_16 dependsOn: [] jobs: - template: templates/group_tests.yml diff --git a/infra/azure/build-containers.yml b/infra/azure/build-containers.yml index a98b2e1100580848f9172c211dd320df86f473ea..8f6b57d8ef561ce0b4192db16919588a6a92e984 100644 --- a/infra/azure/build-containers.yml +++ b/infra/azure/build-containers.yml @@ -1,5 +1,4 @@ --- - schedules: - cron: "0 0 * * 0" displayName: Weekly Sunday midnight build @@ -13,46 +12,24 @@ trigger: none pool: vmImage: 'ubuntu-24.04' +variables: { distros: "fedora-latest,fedora-rawhide,c9s" } + stages: +- ${{ each distro in split(variables.distros, ',') }}: + - stage: build_${{ join('_', split(distro, '-')) }} + dependsOn: [] + jobs: + - template: templates/build_container.yml + parameters: + distro: ${{ distro }} + +# Special case for CentOS 8 Stream - stage: CentOS_8_Stream dependsOn: [] jobs: - template: templates/build_container.yml parameters: - job_name_suffix: C8S distro: c8s # ansible-core 2.17+ cannot be used to deploy on CentOS 8 Stream. ansible_core_version: "<2.17" - -- stage: CentOS_9_Stream - dependsOn: [] - jobs: - - template: templates/build_container.yml - parameters: - job_name_suffix: C9S - distro: c9s - -- stage: CentOS_10_Stream - dependsOn: [] - jobs: - - template: templates/build_container.yml - parameters: - job_name_suffix: C10S - distro: c10s - -- stage: Fedora_Latest - dependsOn: [] - jobs: - - template: templates/build_container.yml - parameters: - job_name_suffix: FedoraLatest - distro: fedora-latest - -- stage: Fedora_Rawhide - dependsOn: [] - jobs: - - template: templates/build_container.yml - parameters: - job_name_suffix: FedoraRawhide - distro: fedora-rawhide diff --git a/infra/azure/nightly.yml b/infra/azure/nightly.yml index 671571a04a14d41428cbe21d41047ae9568201f3..ded58778516e7b397ae984b06a2352db4609499c 100644 --- a/infra/azure/nightly.yml +++ b/infra/azure/nightly.yml @@ -12,115 +12,68 @@ trigger: none pool: vmImage: 'ubuntu-20.04' -stages: - -# Fedora - -- stage: fedora_latest_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - ansible_version: "-core >=2.15,<2.16" - skip_git_test: true - -- stage: fedora_latest_Ansible_Core_2_16 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - ansible_version: "" - skip_git_test: true - -- stage: fedora_latest_Ansible_Core_2_17 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - ansible_version: "-core >=2.17" - skip_git_test: true - -# Galaxy on Fedora - -- stage: Galaxy_fedora_latest_Ansible_Core_2_17 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - ansible_version: "-core >=2.17,<2.18" - skip_git_test: true - test_galaxy: true - -# Fedora Rawhide +variables: + # We need to have two sets, as c8s is not supported by all ansible versions + recent_distros: "fedora-latest,fedora-rawhide,c9s" + distros: "fedora-latest,fedora-rawhide,c9s,c8s" + ansible_latest: "-core" + ansible_minimum: "-core <2.16" + ansible_version: "-core >=2.16,<2.17" -- stage: fedora_rawhide_Ansible_Core_2_17 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-rawhide - ansible_version: "-core >=2.17,<2.18" - skip_git_test: true - -# CentoOS 9 Stream - -- stage: c9s_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c9s - ansible_version: "-core >=2.15,<2.16" - skip_git_test: true - -- stage: c9s_Ansible_Core_2_16 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c9s - ansible_version: "-core >=2.16,<2.17" - skip_git_test: true - -- stage: c9s_Ansible_Core_2_17 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c9s - ansible_version: "-core >=2.17,<2.18" - skip_git_test: true - -# CentOS 8 Stream only works up to ansible-core 2.16.z - -- stage: c8s_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c8s - ansible_version: "-core >=2.15,<2.16" - skip_git_test: true +stages: -- stage: c8s_Ansible_Core_2_16 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c8s - ansible_version: "-core >=2.16,<2.17" - skip_git_test: true +# Minimum ansible + +- ${{ each distro in split(variables.distros, ',') }}: + - stage: ${{ replace(distro, '-', '_') }}_ansible_2_15 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-latest + ansible_version: ${{ variables.ansible_minimum }} + skip_git_test: true + test_galaxy: false + +# Latest ansible + +- ${{ each distro in split(variables.recent_distros, ',') }}: + - stage: ${{ replace(distro, '-', '_') }}_ansible_latest + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: ${{ distro }} + ansible_version: ${{ variables.ansible_latest }} + skip_git_test: true + test_galaxy: false + +# Selected ansible-core version + +- ${{ each distro in split(variables.distros, ',') }}: + - stage: ${{ replace(distro, '-', '_') }}_ansible_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: ${{ distro }} + ansible_version: ${{ variables.ansible_version }} + skip_git_test: true + test_galaxy: false + +# Galaxy collection with selected ansible-core version + +- ${{ each distro in split(variables.distros, ',') }}: + - stage: galaxy_${{ replace(distro, '-', '_') }}_asible_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: ${{ distro }} + ansible_version: ${{ variables.ansible_version }} + skip_git_test: true + test_galaxy: true diff --git a/infra/azure/pr-pipeline.yml b/infra/azure/pr-pipeline.yml index bc6e0830b8b678a421c9b3380ff073cdbb864580..ea89f321cf20629883a3ba31f020e99585d724c1 100644 --- a/infra/azure/pr-pipeline.yml +++ b/infra/azure/pr-pipeline.yml @@ -5,65 +5,35 @@ trigger: pool: vmImage: 'ubuntu-20.04' +variables: + distros: "fedora-latest,c9s,c8s,fedora-rawhide" + ansible_version: "-core >=2.15,<2.16" + stages: -# Fedora +# Test with repository in all distros -- stage: Fedora_Latest - dependsOn: [] - jobs: - - template: templates/run_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-latest - ansible_version: "-core >=2.15,<2.16" - skip_git_test: false +- ${{ each distro in split(variables.distros, ',') }}: + - stage: ${{ replace(distro, '-', '_') }}_ansible_2_16 + dependsOn: [] + jobs: + - template: templates/run_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: ${{ distro }} + ansible_version: ${{ variables.ansible_version }} + skip_git_test: false + test_galaxy: false # Galaxy on Fedora -- stage: Galaxy_Fedora_Latest +- stage: galaxy_fedora_latest_ansible_2_16 dependsOn: [] jobs: - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest - ansible_version: "-core >=2.15,<2.16" + ansible_version: ${{ variables.ansible_version }} skip_git_test: false test_galaxy: true - -# CentOS 9 Stream - -- stage: CentOS_9_Stream - dependsOn: [] - jobs: - - template: templates/run_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c9s - ansible_version: "-core >=2.15,<2.16" - skip_git_test: false - -# CentOS 8 Stream - -- stage: CentOS_8_Stream - dependsOn: [] - jobs: - - template: templates/run_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: c8s - ansible_version: "-core >=2.15,<2.16" - skip_git_test: false - -# Rawhide - -- stage: Fedora_Rawhide - dependsOn: [] - jobs: - - template: templates/run_tests.yml - parameters: - build_number: $(Build.BuildNumber) - distro: fedora-rawhide - ansible_version: "-core >=2.15,<2.16" - skip_git_test: false diff --git a/infra/azure/templates/build_container.yml b/infra/azure/templates/build_container.yml index 4fa0b469fef922ba4522bd50351946bbe40af75a..e3c2bdea575f38cac9bb155d72e41ddf057108fe 100644 --- a/infra/azure/templates/build_container.yml +++ b/infra/azure/templates/build_container.yml @@ -1,7 +1,5 @@ --- parameters: - - name: job_name_suffix - type: string - name: distro type: string - name: python_version @@ -11,7 +9,7 @@ parameters: default: "" jobs: -- job: BuildTestImage${{ parameters.job_name_suffix }} +- job: BuildTestImage_${{ join('_', split(parameters.distro, '-')) }} displayName: Build ${{ parameters.distro }} test container steps: - task: UsePythonVersion@0