summaryrefslogtreecommitdiffstats
path: root/ansible_collections/hetzner/hcloud/tests/utils/gitlab/gitlab.sh
blob: a96ad2f4c829773197fa383ca485deabc598ec49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env bash

set -o pipefail -eux

declare -a args

IFS='/:' read -ra args <<< "$1"

ansible_version="${args[0]}"
# shellcheck disable=SC2034
script="${args[1]}"

function join {
  local IFS="$1"
  shift
  echo "$*"
}

test="$(join / "${args[@]:1}")"
command -v python
python -V

function retry {
  # shellcheck disable=SC2034
  for repetition in 1 2 3; do
    set +e
    "$@"
    result=$?
    set -e
    if [ ${result} == 0 ]; then
      return ${result}
    fi
    echo "@* -> ${result}"
  done
  echo "Command '@*' failed 3 times!"
  exit 1
}

command -v pip
pip --version
pip list --disable-pip-version-check
if [ "${ansible_version}" == "devel" ]; then
  retry pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
else
  retry pip install "https://github.com/ansible/ansible/archive/stable-${ansible_version}.tar.gz" --disable-pip-version-check
fi
export ANSIBLE_COLLECTIONS_PATH="${HOME}/.ansible"
# shellcheck disable=SC2034
SHIPPABLE_RESULT_DIR="$(pwd)/shippable"
TEST_DIR="${ANSIBLE_COLLECTIONS_PATH}/ansible_collections/hetzner/hcloud"
rm -rf  "${TEST_DIR}"
mkdir -p "${TEST_DIR}"
cp -r "." "${TEST_DIR}"
cd "${TEST_DIR}"

# STAR: HACK install dependencies
retry pip install -r tests/integration/requirements.txt -c tests/integration/constraints.txt
retry ansible-galaxy -vvv collection install -r tests/requirements.yml

retry pip install rstcheck
retry ansible-galaxy -vvv collection install community.internal_test_tools
# END: HACK

export PYTHONIOENCODING='utf-8'

if [ "${JOB_TRIGGERED_BY_NAME:-}" == "nightly-trigger" ]; then
  COMPLETE=yes
fi

if [ -n "${COMPLETE:-}" ]; then
  # disable change detection triggered by setting the COMPLETE environment variable to a non-empty value
  export CHANGED=""
elif [[ "${CI_COMMIT_MESSAGE}" =~ ci_complete ]]; then
  # disable change detection triggered by having 'ci_complete' in the latest commit message
  export CHANGED=""
else
  # enable change detection (default behavior)
  export CHANGED=""
fi

export UNSTABLE="--allow-unstable-changed"

# remove empty core/extras module directories from PRs created prior to the repo-merge
find plugins -type d -empty -print -delete

ansible-test env --dump --show --timeout "50" --color -v

group="${args[1]}"
echo "$test"
if [[ "${test}" =~ hcloud ]]; then
  group="${args[3]}"
  bash tests/utils/gitlab/integration.sh "shippable/hcloud/group${group}/"
else
  bash tests/utils/gitlab/sanity.sh "sanity/${group}"
fi