首页 > 解决方案 > Bitbucket 管道 - 构建 Create-react-app,对其进行压缩,通过 ftp 上传并在服务器上解压缩

问题描述

我正在使用 bitbucket 管道来部署我的反应应用程序。

现在我的管道看起来像这样:

image: node:10.15.3

pipelines:
  default:
      - step:
          name: Build
          script:
          - npm cache clean --force
          - rm -rf node_modules
          - npm install
          - CI=false npm run deploy-app
          artifacts: # defining build/ as an artifact
          - 'build-artifact/**'
      - step:
          name: Deploy
          script:
            - apt-get update
            - apt-get install ncftp
            - ncftpput -v -u "$USERNAME" -p "$PASSWORD" -R $SERVER build 'build-artifact/*'
            - echo Finished uploading build

它像这样工作得非常好,但是 ftp 上传大约需要 8 分钟,这太长了,因为使用 Bitbucket 的免费计划,我每个月只能使用管道功能 50 分钟。

似乎每个小文件的上传都需要很长时间。这就是为什么我认为上传单个 zip 文件可能会更高效。

所以我的问题是:它真的更快吗?以及如何压缩工件,将压缩文件上传到服务器并在那里解压缩?

谢谢你的帮助

标签: reactjscontinuous-integrationcreate-react-apppipelinebitbucket-pipelines

解决方案


实际上,您应该考虑使用其他工具来上传文件,例如rsync它具有一些有用的功能,例如数据压缩。它也只上传从以前的上传更改的文件,这也将加快上传速度。您可以使用rsync-deploy管道,例如:

script:
  - pipe: atlassian/rsync-deploy:0.3.2
    variables:
      USER: 'ec2-user'
      SERVER: '127.0.0.1'
      REMOTE_PATH: '/var/www/build/'
      LOCAL_PATH: 'build'
      EXTRA_ARGS: '-z'

请注意-z通过 EXTRA_ARGS 传递的选项。这将在传输文件时启用数据压缩。


推荐阅读