diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f46440f99971c70e3258e04bcbac90379f431e47..35918df784c12cdbbc0f08c40805d9c21b1a2e29 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - check-code - compile + - deploy check-code: image: ninfra/puppet-checker:0.0.1 @@ -29,3 +30,12 @@ compile-profiles: done < <( find ./profile/manifests/ -name "*.pp" -a -exec grep ^class "{}" \; | awk "{ print \$2 }" );' tags: - docker + +deploy-role-onlyoffice: + stage: deploy + variables: + GIT_SUBMODULE_STRATEGY: recursive + script: + - sudo ./.scripts/deploy-role.sh role::onlyoffice + tags: + - libvirt diff --git a/.scripts/deploy-role.sh b/.scripts/deploy-role.sh new file mode 100755 index 0000000000000000000000000000000000000000..276d86686cad251ba7bac23b5b252cb613f75b2f --- /dev/null +++ b/.scripts/deploy-role.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# Deploy a role using Puppet Apply. + +set -x + +CLASS=${1} + +if [ -z "${CLASS}" ]; then + echo "Usage: ${0} class" + exit 1 +fi + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +REPO_DIR="$( dirname ${SCRIPT_DIR} )" + +apt update +apt install -qy puppet git + +# deploy a role +puppet apply \ + --detailed-exitcodes \ + --modulepath ${REPO_DIR} \ + -e "include ${CLASS}" + +test "${?}" = 2 || exit 1 # Puppet exit code 2: The run succeeded, and some resources were changed.