JenkinsのフロントエンドVUE自動化パッケージリリース


1.需要
開発フロントエンドVUEプロジェクトの自動化パッケージリリースを実現し、フロントエンドは自分で相応の更新を行い、コミュニケーション時間を節約する.
2.実現方式
Jenkins slave pipeline呼び出しcnpmコマンドを使用してVUEプロジェクトを構築
3.pipeline
node('slave-191') {
    stage(' SVN    ') {
       checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', 
       excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, 
       credentialsId: '      ID', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', 
       remote: 'svn    ']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
    }
    stage("Install") {
        sh '''export Node_Home=/usr/local/node-v12.13.1
        export PATH="$PATH:$Node_Home/bin"
        $Node_Home/bin/cnpm install'''
    }
    stage('NPM  ') {
        sh '''export Node_Home=/usr/local/node-v12.13.1
        export PATH="$PATH:$Node_Home/bin"
        $Node_Home/bin/npm run build'''
    }
    stage("  API    ") {
        sh '''sed -i 's/ip1/ip2/g' ${WORKSPACE}/dist/static/config.js
        '''
    }
    stage("  dist   ") {
         sh '''tar -zcvf dist.tar.gz dist/
         '''
         archiveArtifacts artifacts: '*.tar.gz', fingerprint: true
    }
    stage('   ') {
        sh '''
        cp -r ${WORKSPACE}/dist/ /usr/local/nginx/html/
        '''
    }
    stage('      ') {
        sh '''running_num=`/usr/bin/systemctl status nginx| grep running | wc -l`
        if [ $running_num -eq 1 ];then
            echo "deploy success"
        else
            echo "deploy failed"
            exit 1
        fi
        '''
    }
}

4.構築結果