Theo Chatzimichos 96429a
#!/bin/bash
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
help() {
Theo Chatzimichos 96429a
    echo "Runs all the tests on the user's workstation."
Theo Chatzimichos 96429a
    echo "Needs to be run as normal user."
Theo Chatzimichos 96429a
    echo
Theo Chatzimichos 96429a
    echo "Arguments:"
Theo Chatzimichos 96429a
    echo "-d <DESTINATION>  Absolute path of the destination directory where the formulas are / should be cloned"
Theo Chatzimichos 96429a
    echo
Theo Chatzimichos 96429a
}
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
[[ $(whoami) == 'root' ]] && help && exit 1
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
[[ $1 == '--help' ]] && help && exit
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
while getopts d:h arg; do
Theo Chatzimichos 96429a
    case ${arg} in
Theo Chatzimichos 96429a
        d) DESTINATION=${OPTARG} ;;
Theo Chatzimichos 96429a
        h) help && exit ;;
Theo Chatzimichos 96429a
        *) help && exit 1 ;;
Theo Chatzimichos 96429a
    esac
Theo Chatzimichos 96429a
done
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
[[ -z $DESTINATION ]] && help && exit 1
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
SALT_DIRS=(
Theo Chatzimichos 96429a
    /etc/salt
Theo Chatzimichos 96429a
    /var/log/salt
Theo Chatzimichos 96429a
    /var/cache/salt
Theo Chatzimichos 96429a
)
Theo Chatzimichos 96429a
Theo Chatzimichos b4fa0d
# Prepare env
Theo Chatzimichos 96429a
for dir in ${SALT_DIRS[@]}; do
Theo Chatzimichos 96429a
    sudo chown -R ${USER}: $dir
Theo Chatzimichos 96429a
done
Theo Chatzimichos 042b5b
bin/prepare_test_env.sh -g -s
Theo Chatzimichos 042b5b
bin/get_formulas.py --destination $DESTINATION --clone --symlink --update opensuse \
Theo Chatzimichos ee2abc
    --add-remote opensuse no_prefix gitlab@gitlab.infra.opensuse.org: saltstack-formulas
Theo Chatzimichos 96429a
ln -s ~/.gnupg /etc/salt/gpgkeys
Theo Chatzimichos b4fa0d
Theo Chatzimichos b4fa0d
# Run tests
Theo Chatzimichos 96429a
echo "Running against upstream formulas"
Theo Chatzimichos b4fa0d
LC_ALL=C bin/test_validate.sh
Theo Chatzimichos 96429a
bin/get_formulas.py --destination $DESTINATION --checkout opensuse/production
Theo Chatzimichos 96429a
echo "Running against forked formulas"
Theo Chatzimichos 96429a
LC_ALL=C bin/test_show_highstate.sh
Theo Chatzimichos 96429a
Theo Chatzimichos 96429a
# Cleanup
Theo Chatzimichos 96429a
bin/get_formulas.py --destination $DESTINATION --remove-symlinks --checkout origin/master
Theo Chatzimichos 96429a
for dir in ${SALT_DIRS[@]}; do
Theo Chatzimichos 96429a
    sudo chown -R root: $dir
Theo Chatzimichos 96429a
done
Theo Chatzimichos 96429a
sudo rm /srv/{salt,pillar} /etc/salt/{grains,gpgkeys}
Theo Chatzimichos 96429a
sudo mkdir /srv/{salt,pillar}
Theo Chatzimichos 96429a
ID=$(hostname -f)
Theo Chatzimichos 96429a
rm pillar/id/${ID//./_}.sls