Fix Azure Pipelines (#155)

* Fix Azure Pipelines

* Simplify AZP stages
* Remove hacks, use azure-pipelines-test-container:1.7.0
* Expand test matrix

* chown
pull/158/head
John R Barker 2020-12-10 15:40:28 +00:00 committed by GitHub
parent 52f7f0212b
commit 3fa229b7b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 155 additions and 125 deletions

View File

@ -0,0 +1,3 @@
## Azure Pipelines Configuration
Please see the [Documentation](https://github.com/ansible/community/wiki/Testing:-Azure-Pipelines) for more information.

View File

@ -36,52 +36,48 @@ variables:
resources: resources:
containers: containers:
- container: default - container: default
image: quay.io/ansible/azure-pipelines-test-container:1.6.0 image: quay.io/ansible/azure-pipelines-test-container:1.7.0
pool: Standard pool: Standard
stages: stages:
- stage: Sanity_devel ### Sanity & units
displayName: Sanity devel - stage: Ansible_devel
displayName: Sanity & Units devel
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
parameters: parameters:
nameFormat: Test {0}
testFormat: devel/sanity/{0}
targets: targets:
- test: 1 - name: Sanity
- test: extra test: 'devel/sanity/1'
- stage: Units_devel - name: Sanity Extra # Only on devel
displayName: Units devel test: 'devel/sanity/extra'
- name: Units
test: 'devel/units/1'
- stage: Ansible_2_10
displayName: Sanity & Units 2.10
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
parameters: parameters:
nameFormat: Python {0}
testFormat: devel/units/{0}/1
targets: targets:
- test: '' - name: Sanity
- stage: Remote_devel test: '2.10/sanity/1'
displayName: Remote devel - name: Units
test: '2.10/units/1'
- stage: Ansible_2_9
displayName: Sanity & Units 2.9
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
parameters: parameters:
testFormat: devel/{0}/1
targets: targets:
- name: OS X 10.11 - name: Sanity
test: osx/10.11 test: '2.9/sanity/1'
- name: macOS 10.15 - name: Units
test: macos/10.15 test: '2.9/units/1'
- name: RHEL 7.8 ### Docker
test: rhel/7.8
- name: RHEL 8.2
test: rhel/8.2
- name: FreeBSD 11.1
test: freebsd/11.1
- name: FreeBSD 12.1
test: freebsd/12.1
- stage: Docker_devel - stage: Docker_devel
displayName: Docker devel displayName: Docker devel
dependsOn: [] dependsOn: []
@ -110,6 +106,106 @@ stages:
test: ubuntu1604 test: ubuntu1604
- name: Ubuntu 18.04 - name: Ubuntu 18.04
test: ubuntu1804 test: ubuntu1804
- stage: Docker_2_10
displayName: Docker 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.10/linux/{0}/1
targets:
- name: CentOS 6
test: centos6
- name: CentOS 7
test: centos7
- name: CentOS 8
test: centos8
- name: Fedora 30
test: fedora30
- name: Fedora 31
test: fedora31
- name: Fedora 32
test: fedora32
- name: openSUSE 15 py2
test: opensuse15py2
- name: openSUSE 15 py3
test: opensuse15
- name: Ubuntu 16.04
test: ubuntu1604
- name: Ubuntu 18.04
test: ubuntu1804
- stage: Docker_2_9
displayName: Docker 2.9
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.9/linux/{0}/1
targets:
- name: CentOS 6
test: centos6
- name: CentOS 7
test: centos7
- name: CentOS 8
test: centos8
- name: Fedora 30
test: fedora30
- name: Fedora 31
test: fedora31
# fedora32 doesn't exist in 2.9
# - name: Fedora 32
# test: fedora32
- name: openSUSE 15 py2
test: opensuse15py2
- name: openSUSE 15 py3
test: opensuse15
- name: Ubuntu 16.04
test: ubuntu1604
- name: Ubuntu 18.04
test: ubuntu1804
### Remote
- stage: Remote_devel
displayName: Remote devel
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/{0}/1
targets:
- name: OS X 10.11
test: osx/10.11
- name: macOS 10.15
test: macos/10.15
- name: RHEL 7.8
test: rhel/7.8
- name: RHEL 8.2
test: rhel/8.2
- name: FreeBSD 11.1
test: freebsd/11.1
- name: FreeBSD 12.1
test: freebsd/12.1
- stage: Remote_2_10
displayName: Remote 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.10/{0}/1
targets:
- name: RHEL 7.8
test: rhel/7.8
- stage: Remote_2_9
displayName: Remote 2.9
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.9/{0}/1
targets:
- name: 'RHEL 7.8'
test: 'rhel/7.8'
### cloud
- stage: Cloud_devel - stage: Cloud_devel
displayName: Cloud devel displayName: Cloud devel
dependsOn: [] dependsOn: []
@ -126,121 +222,41 @@ stages:
- test: 3.7 - test: 3.7
- test: 3.8 - test: 3.8
- test: 3.9 - test: 3.9
- stage: Sanity_2_10
displayName: Sanity 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test 1 {0}
testFormat: 2.10/sanity/1/{0}
targets:
- test: ''
- stage: Units_2_10
displayName: Units 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: 2.10/units/{0}/1
targets:
- test: ''
- stage: Remote_2_10
displayName: Remote 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: RHEL 7.8 {0}
testFormat: 2.10/rhel/7.8/{0}/1
targets:
- test: ''
- stage: Docker_2_10
displayName: Docker 2.10
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Ubuntu 18.04 {0}
testFormat: 2.10/linux/ubuntu1804/{0}/1
targets:
- test: ''
- stage: Cloud_2_10 - stage: Cloud_2_10
displayName: Cloud 2.10 displayName: Cloud 2.10
dependsOn: [] dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python 3.6 {0}
testFormat: 2.10/cloud/3.6/{0}/1
targets:
- test: ''
- stage: Sanity_2_9
displayName: Sanity 2.9
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test 1 {0}
testFormat: 2.9/sanity/1/{0}
targets:
- test: ''
- stage: Units_2_9
displayName: Units 2.9
dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
parameters: parameters:
nameFormat: Python {0} nameFormat: Python {0}
testFormat: 2.9/units/{0}/1 testFormat: 2.10/cloud/{0}/1
targets: targets:
- test: '' - test: 3.6
- stage: Remote_2_9
displayName: Remote 2.9
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: RHEL 7.8 {0}
testFormat: 2.9/rhel/7.8/{0}/1
targets:
- test: ''
- stage: Docker_2_9
displayName: Docker 2.9
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Ubuntu 18.04 {0}
testFormat: 2.9/linux/ubuntu1804/{0}/1
targets:
- test: ''
- stage: Cloud_2_9 - stage: Cloud_2_9
displayName: Cloud 2.9 displayName: Cloud 2.9
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
parameters: parameters:
nameFormat: Python 3.5 {0} nameFormat: Python {0}
testFormat: 2.9/cloud/3.5/{0}/1 testFormat: 2.9/cloud/{0}/1
targets: targets:
- test: '' - test: 3.5
## Finally
- stage: Summary - stage: Summary
condition: succeededOrFailed() condition: succeededOrFailed()
dependsOn: dependsOn:
- Sanity_devel - Ansible_devel
- Units_devel - Ansible_2_10
- Ansible_2_9
- Remote_devel - Remote_devel
- Docker_devel - Docker_devel
- Cloud_devel - Cloud_devel
- Sanity_2_10
- Units_2_10
- Remote_2_10 - Remote_2_10
- Docker_2_10 - Docker_2_10
- Cloud_2_10 - Cloud_2_10
- Sanity_2_9
- Units_2_9
- Remote_2_9 - Remote_2_9
- Docker_2_9 - Docker_2_9
- Cloud_2_9 - Cloud_2_9

View File

@ -14,8 +14,13 @@ function join {
echo "$*"; echo "$*";
} }
test="$(join / "${args[@]:1}")" # HACK remove once azure-pipelines-test-container has been fixed
export PATH=$PATH:$HOME/.local/bin
# Ensure we can write other collections to this dir
sudo chown "$(whoami)" "${PWD}/../../"
test="$(join / "${args[@]:1}")"
docker images ansible/ansible docker images ansible/ansible
docker images quay.io/ansible/* docker images quay.io/ansible/*
docker ps docker ps
@ -69,12 +74,18 @@ if [ "${script}" == "osx" ] && [ "${ansible_version}" == "2.9" ]; then
fi fi
# END: HACK # END: HACK
export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible"
SHIPPABLE_RESULT_DIR="$(pwd)/shippable" if [ "${SHIPPABLE_BUILD_ID:-}" ]; then
TEST_DIR="${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/crypto" export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible"
mkdir -p "${TEST_DIR}" SHIPPABLE_RESULT_DIR="$(pwd)/shippable"
cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}" TEST_DIR="${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/crypto"
cd "${TEST_DIR}" mkdir -p "${TEST_DIR}"
cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}"
cd "${TEST_DIR}"
else
# AZP
export ANSIBLE_COLLECTIONS_PATHS="$PWD/../../../"
fi
# START: HACK install integration test dependencies # START: HACK install integration test dependencies
if [ "${script}" != "units" ] && [ "${script}" != "sanity" ] && [ "${ansible_version}" != "2.9" ]; then if [ "${script}" != "units" ] && [ "${script}" != "sanity" ] && [ "${ansible_version}" != "2.9" ]; then