
pipeline {
    agent any
    environment {
        deployPath = "/var/www/vhosts/bizgaze.com/qa.Bizgaze.com"
    }
    stages {
		stage('Restore packages') {
            steps {
            	dir('tenants') {
					git url: 'https://code.bizgaze.com/unibase/tenants.git'
				}
				dir('analytics') {
					git url: 'https://code.bizgaze.com/unibase/analytics.git'
				}
				dir('apps') {
					git url: 'https://code.bizgaze.com/unibase/apps.git'
				}
				dir('automation') {
					git url: 'https://code.bizgaze.com/unibase/automation.git'
				}
				dir('common') {
					git url: 'https://code.bizgaze.com/unibase/common.git'
				}
				dir('core') {
					git url: 'https://code.bizgaze.com/unibase/core.git'
				}
				dir('datasources') {
					git url: 'https://code.bizgaze.com/unibase/datasources.git'
				}
				dir('desktop') {
					git url: 'https://code.bizgaze.com/unibase/desktop.git'
				}
				dir('dlls_unibase') {
					git url: 'https://code.bizgaze.com/unibase/dlls_unibase.git'
				}
				dir('gps') {
					git url: 'https://code.bizgaze.com/unibase/gps.git'
				}
				dir('Helpers') {
					git url: 'https://code.bizgaze.com/unibase/helpers.git'
				}
				dir('integrations') {
					git url: 'https://code.bizgaze.com/unibase/integrations.git'
				}
				dir('mongdbprovider') {
					git url: 'https://code.bizgaze.com/unibase/mongodbprovider.git'
				}
				dir('mssqldbprovider') {
					git url: 'https://code.bizgaze.com/unibase/mssqldbprovider.git'
				}
				dir('pgsqldbprovider') {
					git url: 'https://code.bizgaze.com/unibase/pgsqldbprovider.git'
				}
				dir('Platform') {
					git url: 'https://code.bizgaze.com/unibase/platform.git'
				}
				dir('platform.server') {
					git url: 'https://code.bizgaze.com/unibase/platform.server.git'
				}
				dir('templates') {
					git url: 'https://code.bizgaze.com/unibase/templates.git'
				}
				dir('themes') {
					git url: 'https://code.bizgaze.com/unibase/themes.git'
				}
				dir('unibase.reference') {
					git url: 'https://code.bizgaze.com/unibase/unibase.reference.git'
				}
				dir('uniconnect') {
					git url: 'https://code.bizgaze.com/unibase/uniconnect.git'
				}
				dir('utilities') {
					git url: 'https://code.bizgaze.com/unibase/utilities.git'
				}
				dir('web') {
					git url: 'https://code.bizgaze.com/unibase/web.git'
				}
				git url: 'https://code.bizgaze.com/unibase/Solution.git'
                
				sh 'dotnet restore ${WORKSPACE}/Unibase.Publish.sln'                                                
            }
        }
		stage('Clean') {
		    steps {
				sh 'dotnet clean ${WORKSPACE}/Unibase.Publish.sln --configuration Release'
			}
		}
        stage('Build') {
		    steps {
			sh 'dotnet build ${WORKSPACE}/Unibase.Publish.sln --configuration Release --no-restore'
			                
			}
        }/*
        stage('Test') {
            steps {
			sh 'dotnet test ${WORKSPACE}/Unibase.Publish.sln --no-restore'
			                           
            }
        }*/
        stage('Publish') {
		steps {
			sh 'dotnet publish ${WORKSPACE}/Unibase.Publish.sln -o out --configuration Release --no-restore'
			
		}
            
        }
        stage ('Deploy') {
            steps {
				sh 'sudo ~/scripts/qa_deploy ${WORKSPACE}/out'
			}
        }
    }
	post{
		success{
			emailext body: "${currentBuild.currentResult}: Job   ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}",
			recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
			subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}"
		}
		always {
            deleteDir()
        }
		cleanup {
            cleanWs()
        }
	}
}
