mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-06-27 18:50:21 -07:00
Shippable (#8)
* Shippable * build ansible.windows from source * build ansible.windows from source
This commit is contained in:
parent
be7e0892b9
commit
337846a1dd
19 changed files with 676 additions and 0 deletions
110
tests/utils/shippable/units.sh
Executable file
110
tests/utils/shippable/units.sh
Executable file
|
@ -0,0 +1,110 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o pipefail -eux
|
||||
|
||||
declare -a args
|
||||
IFS='/:' read -ra args <<< "$1"
|
||||
|
||||
version="${args[1]}"
|
||||
group="${args[2]}"
|
||||
|
||||
if [[ "${COVERAGE:-}" == "--coverage" ]]; then
|
||||
timeout=90
|
||||
else
|
||||
timeout=30
|
||||
fi
|
||||
|
||||
group1=()
|
||||
group2=()
|
||||
group3=()
|
||||
|
||||
# create three groups by putting network tests into separate groups
|
||||
# add or remove network platforms as needed to balance the groups
|
||||
|
||||
networks2=(
|
||||
aireos
|
||||
apconos
|
||||
aruba
|
||||
asa
|
||||
avi
|
||||
check_point
|
||||
cloudengine
|
||||
cloudvision
|
||||
cnos
|
||||
cumulus
|
||||
dellos10
|
||||
dellos6
|
||||
dellos9
|
||||
edgeos
|
||||
edgeswitch
|
||||
enos
|
||||
eos
|
||||
eric_eccli
|
||||
exos
|
||||
f5
|
||||
fortimanager
|
||||
frr
|
||||
ftd
|
||||
icx
|
||||
ingate
|
||||
ios
|
||||
iosxr
|
||||
ironware
|
||||
itential
|
||||
junos
|
||||
netact
|
||||
netscaler
|
||||
netvisor
|
||||
nos
|
||||
nso
|
||||
nuage
|
||||
nxos
|
||||
onyx
|
||||
opx
|
||||
ovs
|
||||
radware
|
||||
routeros
|
||||
slxos
|
||||
voss
|
||||
vyos
|
||||
)
|
||||
|
||||
networks3=(
|
||||
fortios
|
||||
)
|
||||
|
||||
for network in "${networks2[@]}"; do
|
||||
test_path="test/units/modules/network/${network}/"
|
||||
|
||||
if [ -d "${test_path}" ]; then
|
||||
group1+=(--exclude "${test_path}")
|
||||
group2+=("${test_path}")
|
||||
fi
|
||||
done
|
||||
|
||||
for network in "${networks3[@]}"; do
|
||||
test_path="test/units/modules/network/${network}/"
|
||||
|
||||
if [ -d "${test_path}" ]; then
|
||||
group1+=(--exclude "${test_path}")
|
||||
group3+=("${test_path}")
|
||||
fi
|
||||
done
|
||||
|
||||
case "${group}" in
|
||||
1) options=("${group1[@]:+${group1[@]}}") ;;
|
||||
2) options=("${group2[@]:+${group2[@]}}") ;;
|
||||
3) options=("${group3[@]:+${group3[@]}}") ;;
|
||||
esac
|
||||
|
||||
if [ ${#options[@]} -eq 0 ] && [ "${group}" -gt 1 ]; then
|
||||
# allow collection migration unit tests for groups other than 1 to "pass" without updating shippable.yml or this script during migration
|
||||
echo "No unit tests found for group ${group}."
|
||||
exit
|
||||
fi
|
||||
|
||||
ansible-test env --timeout "${timeout}" --color -v
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
ansible-test units --color -v --docker default --python "${version}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
|
||||
"${options[@]:+${options[@]}}" \
|
Loading…
Add table
Add a link
Reference in a new issue