diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aee2096..444792c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ stages: validate: stage: validate before_script: - - bin/prepare_test_env.sh -g + - bin/prepare_test_env.sh -i opensuse -g - bin/get_formulas.py -c -d /srv/formula -s --clone-from 'https://gitlab.infra.opensuse.org/saltstack-formulas' --clone-branch production script: bin/test_validate.sh tags: @@ -15,7 +15,7 @@ validate: validate_show_highstate_against_upstream_formulas: stage: validate before_script: - - bin/prepare_test_env.sh -g + - bin/prepare_test_env.sh -i opensuse -g - bin/get_formulas.py -c -d /srv/formula -s script: bin/test_show_highstate.sh allow_failure: true @@ -27,7 +27,7 @@ validate_show_highstate_against_upstream_formulas: test_nginx: stage: test before_script: - - bin/prepare_test_env.sh -g -p nginx + - bin/prepare_test_env.sh -i opensuse -g -p nginx - bin/get_formulas.py -c -d /srv/formula -s --clone-from 'https://gitlab.infra.opensuse.org/saltstack-formulas' --clone-branch production -f nginx script: bin/test_nginx.sh tags: diff --git a/bin/prepare_test_env.sh b/bin/prepare_test_env.sh index eb2133d..71d02fd 100755 --- a/bin/prepare_test_env.sh +++ b/bin/prepare_test_env.sh @@ -19,18 +19,22 @@ help() { echo "Arguments:" echo echo "-p Comma-separated list of additional packages to be installed" - echo "-g Make preparation for show_highstate" - echo "-s Include secrets files (disabed because CI runner can't decrypt them due to lack of GPG key)" + echo "-i Choose gitlab instance. Choices: opensuse, suse" + echo "-g OPTIONAL: Make preparation for show_highstate" + echo "-s OPTIONAL: Include secrets files (disabed because CI runner can't decrypt them due to lack of GPG key)" echo } [[ $1 == '--help' ]] && help && exit +#source /etc/os-release SECRETS="False" +#REPO_URL=${PRETTY_NAME// /_} -while getopts p:gsh arg; do +while getopts p:i:gsh arg; do case ${arg} in p) PKG=(${OPTARG//,/ }) ;; + i) INSTANCE=${OPTARG} ;; g) HIGHSTATE=1 ;; s) SECRETS="True" ;; h) help && exit ;; @@ -38,15 +42,30 @@ while getopts p:gsh arg; do esac done +[[ -z $INSTANCE ]] && help && exit 1 [[ -n $HIGHSTATE ]] && HIGHSTATE_PKGS=( git python3-PyYAML ) -$SUDO zypper -qn in --no-recommends salt python3-pygit2 ca-certificates-freeipa-opensuse ${HIGHSTATE_PKGS[@]} ${PKG[@]} +if [[ $INSTANCE == 'opensuse' ]]; then + DOMAIN='infra.opensuse.org' + SALT_CLUSTER='opensuse' + VIRT_CLUSTER='atreju' + #$SUDO zypper -q ar -p 100 -fG http://download.opensuse.org/repositories/openSUSE:/infrastructure/${REPO_URL}/ openSUSE:infrastructure > /dev/null 2>&1 + CERT_PKG='ca-certificates-freeipa-opensuse' +elif [[ $INSTANCE == 'suse' ]]; then + DOMAIN='suse.de' + SALT_CLUSTER='suse_internal' + VIRT_CLUSTER='morla' + #$SUDO zypper -q ar -p 100 -fG http://download.nue.suse.com/ibs/SUSE:/CA/${REPO_URL}/ SUSE:CA > /dev/null 2>&1 + CERT_PKG='ca-certificates-suse' +fi + +#$SUDO zypper -qn in --no-recommends salt python3-pygit2 $CERT_PKG ${HIGHSTATE_PKGS[@]} ${PKG[@]} $SUDO rm -rf /srv/{salt,pillar} $SUDO ln -s $PWD/salt /srv/salt $SUDO ln -s $PWD/pillar /srv/pillar ID=$(hostname -f) -printf "grains:\n city: nuremberg\n country: de\n hostusage: test\n salt_cluster: opensuse\n virt_cluster: atreju\n" > pillar/id/${ID//./_}.sls +printf "grains:\n city: nuremberg\n country: de\n hostusage: test\n salt_cluster: $SALT_CLUSTER\n virt_cluster: $VIRT_CLUSTER\n" > pillar/id/${ID//./_}.sls if [[ -n $HIGHSTATE ]]; then ROLES=$(bin/get_roles.py -o yaml) - printf "city:\ncountry:\ndomain: infra.opensuse.org\ninclude_secrets: $SECRETS\nosfullname:\nosmajorrelease:\nosrelease_info:\n$ROLES\nsalt_cluster: opensuse\nvirt_cluster:\nvirtual:\n" > /etc/salt/grains + printf "city:\ncountry:\ndomain: $DOMAIN\ninclude_secrets: $SECRETS\nosfullname:\nosmajorrelease:\nosrelease_info:\n$ROLES\nsalt_cluster: $SALT_CLUSTER\nvirt_cluster:\nvirtual:\n" > /etc/salt/grains fi