pipeline {
    agent any
    tools {
        nodejs 'Node Argon [4.6.0] + mocha, gulp, grunt, jasmine'
    }
    stages {
        stage('build') {
            steps {
                withNPM(npmrcConfig:'npmrc-global') {
                    sh 'npm install'
                }
            }
        }
        stage('deploy master') {
            when {
                branch "master"
            }
            steps {
                withNPM(npmrcConfig:'npmrc-global') {
                    sh 'npm publish'
                }
            }
        }
        stage('clean up') {
            steps {
                cleanWs()
            }
        }
    }
    post {
        failure {
            slackSend color: 'danger', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
        }
        success {
            slackSend color: 'good', message: "SUCCESS: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
        }
        unstable {
            slackSend color: 'warning', message: "UNSTABLE: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
        }
    }
}