【资料图】
起因
jenkins太耗内存了,经常导致服务器崩。了解到devOps也是做类似的服务的,遂用之。serverless framework也可以做这个,但是截至目前,只能够打包node项目。
devOps服务器运营商基本都提供,比如腾讯云、阿里云、亚马逊云等,使用方法大致相同
流程配置
devops核心内容就是pipeline 即流程配置。下边提供几个常用的配置
前端项目 推送到服务器
这里拿一个react项目,打包完 将内容推送到服务器的home文件夹内
pipeline { stages { stage("获取仓库代码") { steps { checkout([ $class: "GitSCM", branches: [[name: GIT_BUILD_REF]], userRemoteConfigs: [[ url: GIT_REPO_URL, credentialsId: CREDENTIALS_ID ]]]) } } stage("安装依赖") { steps { sh "yarn" } } stage("打包产物") { steps { sh "yarn build" sh "tar -zcvf tmp.tar.gz build" } } stage("部署") { steps { echo "部署中..." script { def remote = [:] remote.name = "腾讯云" remote.allowAnyHosts = true remote.host = "82.157.146.87" remote.port = 22 remote.user = "root" // 把「CODING 凭据管理」中的「凭据 ID」填入 credentialsId, // 参考:https://coding.net/help/docs/project-settings/credential.html#faq withCredentials([usernamePassword(credentialsId: "6de4c5ea-8436-4ed5-9e33-2b737f6f3032", passwordVariable: "password", usernameVariable: "userName")]) { remote.user = "${userName}" remote.password = "${password}" // SSH 上传文件到远端服务器 的home目录下 sshPut remote: remote, from: "./tmp.tar.gz", into: "/home/tmp.tar.gz" // 创建一个文件夹,讲解压缩的文件放进去 sshCommand remote: remote, sudo: true, command: "mkdir -p /home/build" sshCommand remote: remote, command: "tar -zxf /home/tmp.tar.gz -C /home/build" } } echo "部署完成" } } } }
如果想直接部署到nginx服务器根目录 这样更简单