jenkins打包nodejs

公司前后端分离 ,前端代码需要单独打包

jenkins安装:

https://blog.csdn.net/wanchaopeng/article/details/83538629

nodejs自动打包准备环境:

1.使用自带做简单打包 

1.1.打开jenkins工作桌面,选择新任务

然后填写工程名称,选择"构建一个自由风格的软件项目",

General信息

这里填写项目或任务的基本信息,如下:

源码管理:

然后添加源码,比如本例中使用的是git作为源码版本管理,那么选择源码管理标签,选中git(Jenkins需要安装git插件),填写源码地址,选好分支:

构建环境

构建环境可以理解为要构建的项目需要什么样的环境,这里我们设置环境为node环境:

这里的“NodeJS Installation”是下拉选择的,需要提前在如下地方添加:

系统管理->全局工具配置->NodeJs下面,如下,

注意:如果没有NodeJS项的话,考虑如下插件是否安装:

构建

构建就是指怎么样去操作“源代码”,这里我们填写如下:

然后立即构建,查看控制台输出

2. 使用pipline 打包

添加流水线任务

 
pipeline {
    agent any
    options {
        disableConcurrentBuilds()
        buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '8')
        timestamps()
        timeout(30)
        
    }
    environment {
        //gitlab key唯一标识符
		git_access_key='gzcfe_gitlab_key'
        //部署应用名称
		deploy_app="shunmai-pay-vue"
        //部署服务器组
		deploy_host="vue_onetree_beta"
        //拉去分支
		deploy_branch="beta"
		//自动部署分支
		Automation_branch="shunmai_vue_beta"
        //定义生成配置
		build_configuration="test"
        //项目目录
		Primary_path="${JOB_NAME.split('/')[0]}"
        //主文件目录
		app_dir="pay.qrcode"
        //ansible文档目录
        Automation_dir="Automation_onetree_config"
        //ansible应用文档目录
        Automation_app_dir="global_template"
    }
    stages {
        stage('checkout') {
            options {
                retry(3)
            }
            steps {
                echo '检查源码'
                sh 'sleep 1'
                checkout([$class: 'GitSCM', \
                        branches: [[name: "*/${deploy_branch}"]], \
                        doGenerateSubmoduleConfigurations: false, \
                        extensions: [[$class: 'RelativeTargetDirectory', \
                                    relativeTargetDir: "${Primary_path}"]], \
                        submoduleCfg: [], \
                        userRemoteConfigs: [[credentialsId: "${git_access_key}", \
                                            url: 'https://git.one.com/dev/shunmai.zhirongyougou.h5client.git']]])
                checkout([$class: 'GitSCM', \
                        branches: [[name: "*/${Automation_branch}"]], \
                        doGenerateSubmoduleConfigurations: false, \
                        extensions: [[$class: 'RelativeTargetDirectory', \
                                    relativeTargetDir: "${Automation_dir}"]], \
                        submoduleCfg: [], \
                        userRemoteConfigs: [[credentialsId: "${git_access_key}", \
                                            url: 'http://git.one.com/yunwei/Automation_onetree_config.git']]\
                        ])
            }
        }
        stage('install') {
            steps {
                echo 'install'
                dir("/${WORKSPACE}/${Primary_path}/${app_dir}"){
                    sh "cnpm install"
                }
            }
        }
        stage('build') {
            steps {
                echo 'build'
                dir("/${WORKSPACE}/${Primary_path}/${app_dir}"){
                    sh "npm run build"
                }
            }
        }
        stage('archive') {
            steps {
                echo '归档'
                dir("/${WORKSPACE}/${Primary_path}/${app_dir}/dist/"){
                    sh 'cp -pr ./qrcode/* ./   &&\
                        tar cf ${deploy_app}.tar * && \
                        mv ${deploy_app}.tar ${WORKSPACE}'
                }
                archiveArtifacts artifacts: '*.tar', \
                                fingerprint: true
            }
        }
        stage('deploy') {
            steps {
                echo '拷贝归档文件'
                copyArtifacts filter: '*.tar', \
                            fingerprintArtifacts: true, \
                            projectName: "${deploy_app}", \
                            selector: specific('${BUILD_NUMBER}'), \
                            target: 'deploy'
                ansiblePlaybook disableHostKeyChecking: true, \
                                extras: '--extra-vars "App_var=${deploy_app} Inventory_var=${deploy_host}"', \
                                installation: 'ansible_2.7', \
                                inventory: "${Automation_dir}/hosts", \
                                playbook: "${Automation_dir}/${Automation_app_dir}/deploy.yml"
            }
        }
    }
    post {
        always {
            cleanWs deleteDirs: true, notFailBuild: true, patterns: [[pattern: "${JOB_NAME.split('/')[0]}", type: 'INCLUDE'],[pattern: "${deploy_app}.tar", type: 'INCLUDE'] , [pattern: 'deploy', type: 'INCLUDE']]
        }
    }
}

构建成功!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值