#!/usr/bin/env groovy

def branchName = "${env.BRANCH_NAME}";
def branchProduction = "master"
def branchTest = "test";

env.BRANCH_NAME = branchName;
env.TAG = "${env.BUILD_NUMBER}";

switch (branchName){
    case branchTest: 
        env.NODE_ENV = "development";
        break;
    case branchProduction:
        env.DOCKER_HOST = "tcp://172.16.255.29:2375";
        env.NODE_ENV = "production"
        break;
}

node 
{
    stage ('Print environment variables'){
        echo "Branch ${branchName}, Build ${env.TAG}, NODE_ENV ${env.NODE_ENV} en docker Host ${env.DOCKER_HOST}"
    }
    stage ('Checkout') {
        checkout scm
    }

    stage ('install modules'){
        sh "npm install"
    }
    
    stage ('build Project'){
        sh "gulp build"
    }

    stage ("docker")
    {
        stage ("install modules loopback service")
        {
            sh "cd ./services/loopback && npm install"
        }
        
        stage ("Stopping/Removing Docker")
        {
             sh "docker-compose down --rmi 'all'" 
        }

        stage ("Generar dockers")
        {
            sh "docker-compose up -d --build"
        }  
    }
}