Jenkins自动化部署vue前端项目
warning:
这篇文章距离上次修改已过204天,其中的内容可能已经有所变动。
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/main']], userRemoteConfigs: [[url: 'git@github.com:your-username/your-repo.git']]])
}
}
stage('Build') {
steps {
sh 'npm install'
sh 'npm run build:prod'
}
}
stage('Deploy') {
steps {
script {
if (env.DEPLOY_ENV == 'production') {
sshPublisher(publishers: [sshPublisherDesc(configName: 'production_server', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sudo systemctl stop nginx && sudo rm -rf /var/www/your-domain.com/* && sudo cp -a /var/lib/jenkins/workspace/your-job-name/dist/* /var/www/your-domain.com/ && sudo systemctl start nginx', execTimeout: 120000, patternSeparator: '[, ]+', remoteDirectory: '', sourceFiles: 'dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
} else {
sshPublisher(publishers: [sshPublisherDesc(configName: 'staging_server', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'sudo systemctl stop nginx && sudo rm -rf /var/www/your-staging-domain.com/* && sudo cp -a /var/lib/jenkins/workspace/your-job-name/dist/* /var/www/your-staging-domain.com/ && sudo systemctl start nginx', execTimeout: 120000, patternSeparator: '[, ]+', remoteDirectory: '', sourceFiles: 'dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
}
}
}
}
}
environment {
DEPLOY_ENV = 'staging' // 或者 'production'
}
}
这个代码实例展示了如何在Jenkins中设置一个自动构建和部署Vue前端项目的流水线。它包括检出代码、构建项目和部署到不同环境的不同服务器上。根据环境变量DEPLOY_ENV
的值,它会部署到staging服务器或者production服务器。这个例子简洁明了,并且使用了Jenkins的sshPublisher插件来进行远程服务器的操作。
评论已关闭