coding自动构建前端项目,推送远程服务器

coding当中有自动构建前端项目,然后推送的腾讯的对象存储上面的模板,这个就不多说了,只需要填写相关参数就可以构建成功了

在coding当中,先进入项目,然后左侧菜单里面选择 构建计划 ,最后选择 自定义构建过程 ,然后选择代码仓库

该方式需要服务器先支持ssh访问

 

 看以上截图框起来的地方,这个地方是自定义构建过程的地方

然后进入文本编辑器,如下

 

 然后把stage修改为 ,后面我会解释具体的用法

   stage('Node.js') {
      steps {
        sh 'rm -rf /usr/lib/node_modules/npm/'
        dir ('/root/.cache/downloads') {
        sh 'wget -nc "https://coding-public-generic.pkg.coding.net/public/downloads/node-linux-x64.tar.xz?version=v14.18.2" -O node-v14.18.2-linux-x64.tar.xz | true'
        sh 'tar -xf node-v14.18.2-linux-x64.tar.xz -C /usr --strip-components 1'
      }
      sh 'node -v'
     }
    }

  stage('安装依赖') {
      steps {
        sh 'npm install'
      }
    }

    stage('编译') {
      steps {
        sh 'npm run build'
      }
    }

    stage('构建') {
      steps {
        echo '构建中...'
        sh 'pwd'
        sh 'tar -zcf /tmp/tmp.tar.gz -C /root/workspace/mltr .'
        echo '构建完成.'
      }
    }
    
    stage('部署') {
      steps {
        echo '部署中...'
        script {
          def remote = [:]
          remote.name = 'CenOs'
          remote.allowAnyHosts = true
          remote.host = 'xxx.xx.xx.xxx'
          remote.port = 22
          remote.user = 'root'

          // 把「CODING 凭据管理」中的「凭据 ID」填入 credentialsId,而 id_rsa 无需修改
          withCredentials([sshUserPrivateKey(credentialsId: "5ad2bb53-b46c-4e4e-a0a2-6c065453c06d", keyFileVariable: 'id_rsa')]) {
            remote.identityFile = id_rsa

            // SSH 上传文件到远端服务器
            sshPut remote: remote, from: '/tmp/tmp.tar.gz', into: '/tmp/'
            // 解压缩
            sshCommand remote: remote, sudo: true, command: "mkdir -p /docker/nginx/www/xxx"
            sshCommand remote: remote, command: "tar -zxf /tmp/tmp.tar.gz -C /docker/nginx/www/xxx"
          }
        }

        echo '部署完成'
      }
    }

1、stage nodejs是先设置node版本为前端指定的运行版本,如果不需要可以删除该步骤

    如果改版本没有的话可以下载其他版本,具体的可以查看coding使用帮助,或者可以试一下把后面的下载地址和名字都改成node官网的地址,估计也可以不过我没有进行测试

2、至于 安装依赖 和 编译 两步骤就不用多说了,这个就看你自己前端项目的命令了

   如果需要使用淘宝进行的话,只需要 添加设置淘宝镜像的命令即可,至于淘宝镜像的命令就自行百度吧

3、最后的构建,其中xxx一般是指build的文件夹,如果npm build之后的文件家是build的话

shpwd//其实是linux命令,显示当前所在的文件夹,用于调试

sh 'tar -zcf /tmp/tmp.tar.gz -C /root/workspace/xxx .'  //压缩xxx文件夹下的指定目录的所有文件到tmp压缩包,注意后面有一个点

4、部署中

  更改host、port、user为自己服务器的,当然服务器要支持ssh登录,至于 credentialsId 需要在屏幕左下角 项目设置 里面 开发者选项->凭证管理 新建ssh填写自己服务器的秘钥

  由于我用的是腾讯云,所以进入控制台-应用服务器-秘钥新建,会让你下载秘钥到本地,然后保存起来后面会有用

  进入服务器管理界面,有一个密钥对,添加绑定

  在coding里面新建的凭证id粘贴到上面的jenkins命令里面即可。

  在使用已上命令时,一定要注意解压的位置,具体要看你想部署到服务器的那个位置

 sshCommand remote: remote, sudo: true, command: "mkdir -p /docker/nginx/www/xxx"     #在docker/nginx/www下创建xxx目录,由于我的nginx配置到这个目录下,所以就解压到该目录下
 sshCommand remote: remote, command: "tar -zxf /tmp/tmp.tar.gz -C /docker/nginx/www/xxx"    #然后把tmp压缩文件解压到xxx目录

 

最后我是通过Xshell客户端然后使用ssh方式登录服务器的,由于服务器绑定了ssh秘钥,所以需要使用刚刚下载的秘钥登录才可以

 

如果需要docker部署nginx的教程,可以看我其他的帖子

 

posted @ 2022-05-07 15:10  狂奔的老鳖  阅读(767)  评论(0编辑  收藏  举报