使用coding自动化集成部署vue/react

16 篇文章 0 订阅
11 篇文章 2 订阅

上一篇有记录到使用jenkins实现自动化部署web项目,这篇讲一下如何使用codin部署

1.创建项目

首先注册一个coding账号并创建一个项目
在这里插入图片描述

2.录入凭证

通过上图点击左下角的项目设置进入页面,点击左下角开发者选择》凭证管理》录入凭证
在这里插入图片描述
凭证名称:随便填个
root:填写服务器的root
密码:填写服务器的密码

3.制作仓库

这一步的目的是打包后的压缩包自动上传到该目录
在这里插入图片描述
地址:web 可以写别的,只是个名称,用来指定仓库

4.构建计划

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
点击确定后就可以进行相应配置了,也可以从外边进入设置,如题
在这里插入图片描述

5.构建配置(重点)

当前还是选择默认即可
在这里插入图片描述
接下来重点的地方来了
在这里插入图片描述

这里的配置参数可以实现打包动态化,也就是说传入什么参数,比如ip、端口、分支等,就会实现动态打包,而不是局限于某个ip或者分支,这里设置的变量会在文本编辑器中使用

6.配置 Jenkinsfile

复制我这段即可,然后做一些修改即可

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([$class: 'GitSCM',
        branches: [[name: GIT_BUILD_REF]],
        userRemoteConfigs: [[
          url: GIT_REPO_URL,
          credentialsId: CREDENTIALS_ID
        ]]])
      }
    }
    stage('安装依赖') {
      steps {
        sh 'npm install -g cnpm --registry=https://registry.npm.taobao.org'
        sh 'cnpm install'
      }
    }
    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build'
        echo '构建完成'
      }
    }
    stage('压缩制品dist') {
      steps {
        echo '压缩中...'
        sh 'tar -zcf dist.tar.gz dist/'
        echo '压缩完成.'
         sh 'ls'
      }
    }
      stage('上传制品') {
        steps {
          echo '开始上传'
          codingArtifactsGeneric(files: 'dist.tar.gz', repoName: 'web', version: '${env.GIT_BUILD_REF}')
        }
      }
    stage('部署至服务器') {
      steps {
        script {
          def remote= [:]
          remote.name = "my-remote-server"
          remote.host = "${REMOTE_HOST}"
          remote.allowAnyHosts = true
          // 服务器远程地址
          def remotePath = "/www/wwwroot/coding.muge.chat"
            // 使用当前项目下的凭据管理中的 用户名 + 密码 凭据
            withCredentials([usernamePassword(
              credentialsId: "${REMOTE_CRED}",
              passwordVariable: 'password',
              usernameVariable: 'userName'
            )]) {

              // SSH 登陆用户名
              remote.user = userName
              // SSH 登陆密码
              remote.password = password
              stage("执行ssh脚本") {
                echo '开始执行脚本' 
                // SSH 上传文件到远端服务器
                sshPut remote: remote, from: './dist.tar.gz', into:remotePath
                // 解压缩
                sshCommand remote: remote, command: "tar -zxf ${remotePath}/dist.tar.gz -C ${remotePath}/"
                // 删除压缩文件
                sshCommand remote: remote, sudo: false, command: "rm -f ${remotePath}/*.tar.gz"
                // /将dist文件夹所有内容移动到上一级
                sshCommand remote: remote, sudo: false, command: "mv ${remotePath}/dist/* ${remotePath}/"
                // 删除dist文件夹
                sshCommand remote: remote, sudo: false, command: "rm -rf ${remotePath}/dist"
                echo '脚本执行结束' 
              }
            }
        }

      }
    }
  }
}

在这里插入图片描述

7.开始构建

以上配置完,构建即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.扩展

既然通过配置参数,可以实现动态打包。那,我的项目怎么用的到这些参数呢。
比如我要在coding上配置打包参数 ipportname
拿vue2举例,首先在项目根路径中创建 vue.config.js ,使用以下命令便可以获取传入参数

// npm需要这么拿
const {npm_config_ip:ip,npm_config_port:port,npm_config_name:name} = process.env
// 自定义参数ip port name
// 获取定义参数
console.log(ip,'ip');
console.log(port,'port');
console.log(name,'name');

在这里插入图片描述
通过这些参数就可以实现动态打包
参数形式一定要通过 **–**params ,一定要在前面加上 两杠
打包的时候把命令改为npm run build --ip=127.0.1
拿步骤6举例
首先配置了如下参数
在这里插入图片描述

原本代码

    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build'
        echo '构建完成'
      }
    }

更改后的代码

    stage('执行构建') {
      steps {
        echo '开始构建'
        sh 'npm run build --ip=npm run build --ip=${IP} --port=${PORT} --name=${NAME} '构建完成'
      }
    }

引号中变量需要 使用 "${你的变量}"表示

9.结束语

到此jenkins和coding之前端自动化部署项目已学习完成了,是不是觉得挺有意思的

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值