Testing in Jenkins is done to automate previous script executions, it can be Frontend, Backend, even executions with Vagrant.
Below is a pipeline that runs a virtual machine in Jenkins and performs the actions it needs to do.
pipeline {
agent any
options {
timestamps()
preserveStashes(buildCount: 5)
timeout(time: 1, unit: 'HOURS')
}
triggers {
cron('* H/12 * * *')
}
environment {
DATE = "${new Date().format('yyyyMMdd')}"
}
stages {
stage('Install - RHEL 7') {
options {
retry(2)
}
steps {
script {
bat """
cd C:/Users/antonio/Vagrant/VirtualMachine
vagrant up redhat7
vagrant ssh redhat7
vagrant ssh redhat7 -c "cat /etc/os-release"
vagrant ssh redhat7 -c "uname -a"
vagrant ssh redhat7 -c "cp /home/vagrant/shared/executable.run ."
vagrant ssh redhat7 -c "chmod 700 executable.run"
vagrant ssh redhat7 -c "./executable.run"
vagrant ssh redhat7 -c "./executable.run"
vagrant ssh redhat7 -c "cat /home/vagrant/field/user.inf > code.txt"
vagrant ssh redhat7 -c "sed -n '3p' code.txt | cut -c 6,7,8,9,10,11 >> codeUP.txt"
vagrant ssh redhat7 -c "cp /home/vagrant/codeUP.txt /home/vagrant/shared"
vagrant ssh redhat7 -c "sudo /opt/CrowdStrike/falconctl -g --aid | cut -c 6-37 > csid.txt"
vagrant ssh redhat7 -c "cp /home/vagrant/csid.txt /home/vagrant/shared"
vagrant destroy redhat7 -f
"""
}
}
}
stage ('Verify on Firestore') {
steps {
script {
bat """
cd C:/Users/antonio/Vagrant/VirtualMachine
python -m verify_csid.py
"""
}
}
}
}
post {
always {
echo 'Deleting VM in VBox...'
script {
bat """
cd C:/Program Files/Oracle/VirtualBox
VBoxManage unregistervm box-redhat7 --delete
VBoxManage list vms
"""
}
echo 'Export LOGs'
bat "mkdir C:\\Users\\antonio\\Documents\\${env.JOB_NAME}_${env.BUILD_NUMBER}_${DATE}"
bat "COPY C:\\ProgramData\\Jenkins\\.jenkins\\jobs\\variables\\builds\\${env.BUILD_ID}\\log C:\\Users\\antonio\\Documents\\${env.JOB_NAME}_${env.BUILD_NUMBER}_${DATE}.txt"
}
regression {
echo 'Showing VMs running on VBox & Vagrant...'
script {
bat """
cd C:/Program Files/Oracle/VirtualBox
VBoxManage list vms
cd C:/Users/antonio/Vagrant/VirtualMachine
vagrant status
vagrant global-status
"""
}
}
success {
echo 'RUN RedHat 7 => OK'
}
cleanup {
echo 'Deleting code & csid .TXT'
script {
bat """
cd C:/Users/antonio/Vagrant/VirtualMachine
Del /F /A code.txt
Del /F /A csid.txt
"""
}
}
}
}
