pipeline { agent { node { label 'jenkins-slave' } } environment { ESXI_PASS = credentials('VI_PASSWORD') PATH = "/home/qindel/bin/ovftool:${env.PATH}" } stages { stage('Prepare environment') { steps { dir ('tests/API-dhcp') { echo "Install vagrant plugin" sh 'vagrant plugin install vagrant-vmware-esxi' echo "Deploy API server for DHCP with Vagrant" sh 'vagrant up --provider=vmware_esxi --provision' } } } stage('Check Installation') { steps { dir ('tests/API-dhcp') { echo "Get IP of API server for DHCP with Vagrant" sh ''' set -e new_ip=$(vagrant ssh -c "ip a | grep inet | grep eth0 | awk \'{print $2}\' | cut -d/ -f1") echo "$new_ip test-api" | sudo tee -a /etc/hosts > /dev/null echo "IP: $new_ip" curl -L -X 'GET' -H 'accept: application/json' "http://api-test/opengnsys3/rest/dhcp/subnets/" ''' } } } stage ('Run API tests') { steps { echo 'Running API tests' } } stage('Clean up') { steps { dir ('tests/API-dhcp') { echo "Destroy API server for DHCP with Vagrant" // sh 'vagrant destroy -f' } } } } }