首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Bitbucket pipeline - build Create-react-app,将其压缩,通过ftp上传并解压缩到服务器上

Bitbucket Pipeline 是一个集成在 Bitbucket 平台上的持续集成和持续交付工具。它可以让开发者在代码仓库中配置和运行自动化的构建和部署流程。在这个特定的问答内容中,我们将使用 Bitbucket Pipeline 来构建 Create-react-app 项目,并将构建结果压缩、通过 FTP 上传并解压缩到服务器上。

首先,我们需要在 Bitbucket 仓库中创建一个 .bitbucket-pipelines.yml 文件,用于定义我们的构建流程。

代码语言:txt
复制
image: node:latest

pipelines:
  default:
    - step:
        name: Build and Deploy
        script:
          # 安装依赖
          - npm install
          
          # 构建 React 应用
          - npm run build
          
          # 压缩构建结果
          - tar -czvf build.tar.gz build/
          
          # 通过 FTP 上传压缩文件到服务器
          - apt-get update && apt-get install -y lftp
          - lftp -c "set ftp:ssl-allow no; open -u <ftp_username>,<ftp_password> <ftp_server>; mirror -R -e build.tar.gz /remote/path/"
          
          # 在服务器上解压缩文件
          - ssh <server_username>@<server_ip> 'tar -xzvf /remote/path/build.tar.gz -C /server/path/'

上述代码中,我们使用了一个基于 Node.js 的 Docker 镜像作为构建环境,并定义了一个默认的构建流程。在流程中,我们执行了以下操作:

  1. 安装项目依赖:使用 npm install 命令安装 Create-react-app 项目的依赖包。
  2. 构建 React 应用:使用 npm run build 命令构建 Create-react-app 项目。
  3. 压缩构建结果:使用 tar 命令将构建生成的 build 文件夹压缩为 build.tar.gz 文件。
  4. 通过 FTP 上传压缩文件到服务器:使用 lftp 工具通过 FTP 连接到服务器,并使用 mirror 命令将压缩文件上传到服务器的指定路径。
  5. 在服务器上解压缩文件:通过 SSH 连接到服务器,并使用 tar 命令解压缩文件到服务器指定的路径。

请注意,上述代码中的 <ftp_username><ftp_password><ftp_server><server_username><server_ip>/remote/path//server/path/ 等部分需要根据实际情况进行替换。

推荐的腾讯云相关产品和产品介绍链接地址如下:

  1. 腾讯云服务器(CVM):提供了弹性、稳定的云服务器实例,适用于各种应用场景。了解更多:腾讯云服务器
  2. 腾讯云对象存储(COS):安全、稳定、低延迟的云端存储服务,适用于海量静态文件存储和分发。了解更多:腾讯云对象存储
  3. 腾讯云云函数(SCF):事件驱动的无服务器计算服务,可实现代码的自动触发执行。了解更多:腾讯云云函数
  4. 腾讯云弹性公网 IP(EIP):独立的公网 IP 地址,可动态绑定到云资源上,提供灵活的公网访问。了解更多:腾讯云弹性公网 IP

通过以上步骤和腾讯云的相关产品,我们可以实现将 Create-react-app 项目构建、压缩、上传到服务器并解压缩的自动化流程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

高级CLI:开发都人员应该知道的命令

wget 在类似Unix的操作系统,wget命令通过网络下载HTTP、HTTPS或FTP服务的文件。默认情况下,它包含在所有自重的Linux发行版中。...scp 您是否曾经遇到过需要从本地计算机上的远程服务器获取文件的问题?例如,获取用户上传的文件会造成一些麻烦。 您可以使用scp命令通过命令行下载此文件。Scp是安全拷贝的简称。...该命令类似于您可能已经知道的cp命令,但是源或目标位于另一个系统。 以下命令将文件foobar.txt从远程服务器复制到本地目录。...第二部分包括解压缩存档文件,因为在某些时候我们想使用tar文件中的文件。...您可以通过键入以下命令将文件解压缩到特定目录: tar -xvf my-archive.tar -C / home / myfolder / alias 每个人都使用一些太长或太复杂而无法完全记住的命令

73520

使用 Bitbucket 流水线创建最简单的 CI

滚动到 PIPELINE 部分点击 Settings。你会看到如下所示配置: ? 点击切换开关,你会得到一个配置 bitbucket-pipelines.yml 文件的选项。...这个文件将会告诉 Bitbucket 在代码推送到仓库后需要执行哪些命令。点击 “Configure bitbucket-pipeline.yml” 按钮会指引你转到 Pipeline 菜单: ?...这里我们为其指定一个“*Deploy*” 名称,告诉它在 caches 关键字内部缓存节点。 最后,在 scripts 关键词内,将会指定一些我们想要执行的命令。...另一方面,remoteRoot 指向了 FTP 服务器的一个目录。最后,使用 include 我们可以定义哪些文件需要拷贝。使用星号说明我们将复制 dist 目录下的所有文件。...本例这里有一个错误,我们将其日志打印出来了。除此之外,这个部署是成功的。 总结 我们可以在 Pipeline 菜单下监控部署情况。

2K31
  • 探寻背后的机制化繁为简:网站程序升级不过是文件同步

    网站程序也需要不断的升级,不过相对而言比较简单,但工作量不算小,我们看看具体的工作场景: 1,手工使用FTP升级     确认那些网页文件刚刚修改过,然后将这些文件一个个的使用FTP工具上传FTP服务器...这种方式适用于需要严格进行版本管理的情况,通常情况下会为每一个版本准备一个“升级包”,将这个文件包上传服务器后,再由人或者程序解压缩到网站目录。    ...对于场景1,我们可以设计一个自动识别新修改文件的程序,将文件自动上传FTP服务器,从而进一步减少工作量,对于场景2,由于强化了“版本管理”过程,似乎很难找到更优的解决方案。...在WXXX项目中,第一次采用了“文件同步”的理念来做网站程序的升级,开发人员将测试通过的程序,重新编译一次,然后全部复制到一个发布服务器,再运行一个文件同步发送端程序,将新的文件打包,使用邮件发送到客户方的邮箱中...,客户方的文件同步接收端程序检查到新文件后,接收解压缩到网站目录,结束文件同步操作,完成最终的“网站程序升级”功能。

    51850

    FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg

    CentOS编译安装FFmpeg的详细步骤。...1、安装工具包经实测,在欧拉系统需要通过yum安装下列工具:yum install nasm g++ openssl-devel curl-devel cmake git2、安装x264到这个网址下载最新的...x264源码包https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.gz,将下载好的压缩上传到欧拉服务器解压.../multicoreware/x265_git/downloads/x265_3.5.tar.gz,将下载好的压缩上传到欧拉服务器解压,再执行下面的编译和安装命令:cd buildcmake .....install4、安装FFmpeg到这个网址下载最新的FFmpeg源码包https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n5.1.2.tar.gz,将下载好的压缩上传到欧拉服务器解压

    26410

    jenkins 入门教程(中)

    接上回继续,本文以我托管在bitbucket的一个开源项目spring-boot-rest-framework做为演示,讲解如何创建自动化部署。...三、远程分发 编译成功只是第一步,接下来要将编译后的文件打包上传到远程服务器,通常在上传前会压缩一下,即节省带宽,也方便传输。...接下来要上传到远程服务器,理论讲,应该继续在上面的脚本里追加一行scp deploy.tar.gz user@remote_server:/remote_path之类的命令,大家可以尝试一下,最后执行时多半会报没有权限...ok 四、远程应用重启 最后就是远程将上传文件解压启动应用,我们可以事先写一个shell脚本,放在服务器(或者参考上一步的做法,用scp插件上传服务器),脚本内容参考下面这样: #!...假设该脚本文件名为deploy.sh,具备执行权限,我们可以在jenkins中通过插件远程调用它,参考下图的配置: 最后build下,还是观察console output的变化: Build step

    1.4K60

    使用Azure DevOps创建CICD实现自动构建发布

    目前博客项目代码是放在GitHub的,每次发布了新了文章会往GitHub推送一次,还会往托管博客的服务器推送一次,很繁琐 偶然看到可以使用微软的Azure DevOps来创建CI/CD自动构建部署到服务器...view=azure-devops 创建CI image.png 在Pipelines中新建一个Builds管道任务 我的配置如下 # Starter pipeline # Start with a minimal...pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy...)/file.zip' replaceExistingArchive: true displayName: 'zip file' # 吧打包的文件上传到临时代理容器中 - task: PublishBuildArtifacts...创建CD image.png 这里需要设置触发方式,每次新构建成功后自动触发CD部署代码 image.png 在CD中,我创建了两个任务,第一个是吧CI中打包的文件上传到自己的服务器,第二个则是吧已经上传压缩解压出来删除压缩

    54420

    安装 PrestaShop 1.6 - 详细的安装指南

    如果你的操作系统不能自动支持解压缩 Zip 文件,你需要下载安装下面一些工具。...使用压缩工具,将压缩的软件程序包解压缩到你期望的位置,例如你的计算机桌面。不要直接将压缩文件上传到 Web 服务器。...如果你对 Web服务器的使用十分熟悉的话,你也也上传服务器上进行解压缩,这样上传的时间会稍微短一些。 ?...同时在你的本地计算机中,你应该已经有一个已经解压过的 PrestaShop 程序文件。 这个步骤将会让你将你已经解压过的程序文件上传到 Web 服务器或者主机空间中。...在 FileZilla 中,你应该现在可以看到你从 Zip 文件夹中解压出来的 PrestaShop 程序,在右侧是你希望上传这些程序到服务器的目标地址。

    6.8K50

    net2ftp -免费文件上传管理在线FTP客户端

    net2ftp -免费文件上传管理在线FTP客户端 作者:matrix 被围观: 1,470 次 发布时间:2011-10-03 分类:兼容蓄 | 无评论 » 这是一个创建于 3985 天前的主题...net2ftp是很著名的免费在线FTP客户端服务,有包括简体中文版在内的多语言版本,你可以用net2ftp网站连接你的FTP,进行文件上传管理,支持上传压缩文件(zip、tar、tgz、gz)自动解压缩...适合仅有FTP支持而没有Web文件管理功能的空间,或Web文件管理不支持上传压缩文件自动解压缩的。...如果你符合上面两个条件,恭喜你可以在自己的服务器安装NET2FTP了。 3.下载安装包。我这里安装的是完全版。...["max_consumption_ipaddress_dataTransfer"] = 20000000; // 每个IP每天最多传输文件字节 5.把文件上传服务器,/temp文件夹属性设置成777

    3.3K10

    一文学会 Node.js 中的流

    例如在文件压缩的情况下,你可以在文件中写入压缩数据,也可以从文件中读取解压缩的数据。 如果你已经使用过 Node.js,则可能遇到过流。...在流模式下,将自动从底层系统读取数据,通过 EventEmitter 接口使用事件将其尽快提供给程序。 在 paused 模式下,必须显式调用 stream.read() 方法以从流中读取数据块。...)将数据压缩到流中 zlib.createGunzip() 解压缩 gzip 流。...zlib.createDeflate() deflate(压缩算法)将数据压缩到流中 zlib.createInflate() 解压缩一个deflate流 流备忘单: ? cheat1 ?...pipeline – 当把可读流传递到可写流中时,该事件由可写流发出。 unpipe – 当你在可读流上调用 unpipe 停止将其输送到目标流中时发出。 结论 这就是所有关于流的基础知识。

    2.3K30

    如何在GitHub免费搭建个人博客网站?

    你可以在 Jekyll 官方网站(https://jekyllrb.com/)或 GitHub 找到各种免费的 Jekyll 主题。选择一个你喜欢的主题,将其下载解压缩到本地。  ...步骤四:上传文件到 GitHub 仓库  将 Jekyll 主题文件夹中的所有文件上传到你在步骤二中创建的 GitHub 仓库中。...你可以使用 GitHub Desktop、Git 命令行或者直接通过 GitHub 网站上传文件。  ...步骤五:访问你的博客网站  等待一段时间,GitHub 会自动构建你的网站,并将其托管在bokequ.github.io这个地址。你可以在浏览器中输入这个地址,访问你的个人博客网站。  ...通过 GitHub Pages 和 Jekyll,你可以免费搭建个人博客网站,无需购买服务器和域名。这是一个简单且经济高效的方式,让你能够开始你的博客之旅,并与世界分享你的想法和创作。

    14010

    【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

    +PHP】 nodejs或相关框架+守护进程 Express Koa2 以上任何一种在服务器运行起来后都可以担任Web服务器的角色,只是具备的扩展功能和应用场景有区别,Nginx基本是正式环境部署的首选方案...Client等)连接到部署机器,将mydemo目录压缩为zip包后上传服务器指定目录。...使用SSH工具(如Xshell或MobaXter)登录远程机器,假设为linux系统,输入unzip mydemo.zip解压压缩包,然后cd mydemo进入服务端工程,输入npm start即可在服务器开启...4.2 自动化发布脚本deploy.js 自动化发布脚本需要完成这样几个任务: 将打包出的dist压缩为zip包 使用SSH连接部署服务器,将zip包发上去 上传完毕后,启动事先写好后续任务放在服务器的...,所以采用archiver模块先压缩为单个文件后再进行上传

    1.8K20

    在本地安装 Matomo

    本页说明如何在您的网络服务器安装 Matomo 开始跟踪您的站点网络分析。...访问您的网络服务器通过 shell 或 FTP) 如果您有一个 WordPress 网站,我们现在为您提供了一个更简单、更快捷的选项来获取WordPress 插件的 Matomo Analytics...一个 FTP 客户端(如果你在远程服务器安装 Matomo) 检查您是否满足最低要求 检查以确保您的虚拟主机满足运行 Matomo 的最低要求。...否则,请按照下列步骤操作: 将 zip 文件解压缩到硬盘驱动器的文件夹中。这将创建一个包含文件和目录的“matomo”文件夹。...打开您的 FTP 客户端并以“二进制模式”将 Matomo 文件上传到您的 Web 服务器的所需位置。

    2.8K20

    当我们谈部署时,我们在谈什么?

    最原始的部署方式就是在本地进行 build,然后把产物通过 FTP 或者 scp(基于 SSH 的远程拷贝文件拷贝) 传到服务器,如果是后端代码还需要重启下服务。...我们代码会提交到 gitlab 等代码库,然后 jenkins 从这些代码库里把代码下载下来进行 build,再把产物上传服务器。...我们现在还是通过 scp / FTP上传代码做的部署,但是不同代码的运行环境是不同的,比如 Node.js 服务需要安装 node,Java 服务需要安装 JRE 等,只把代码传上去并不一定能跑起来...总结 互联网让我们能够用手机、PC 等终端访问任何一台服务器的资源、服务。而提供这些资源、服务就是我们开发者做的事情。把资源上传服务器,并把服务跑起来,就叫做部署。...对于代码,我们可以本地构建,然后把构建产物通过 FTP/scp 等方式上传服务器。 但是这样的方式不好管理,所以我们会有专门的 CI/CD 平台来做这个,比如 jenkins。

    60610

    如何在腾讯云服务器搭建一个宝塔面板的web网站?

    ,随着云计算的普及应用,搭建如喝水一样简单~ 但今天,叫大家如何在腾讯云CVM云服务器搭建一个属于自己的网站!...,我们先将其解压 会看到如下的文件夹,这些就是网站根目录,我们要做的就是将所有的文件选中,然后再压缩上传 ?...这里还需要注意一点,由于服务器是不支持解压rar格式的压缩包的,所以要在使用解压缩软件进行压缩时设置为zip压缩 FTP上传压缩包到服务器 我的习惯是使用FTP上传服务器,当然面板也比较方便,也可以使用宝塔后台的文件上传功能...打开FTP软件,填写自己创建网站时的FTP信息,如果忘记了可以在宝塔后台找到 连接好FTP之后,我们把刚刚打包的wordpress压缩文件直接拖到右侧的文件栏里面,然后点击传输,上传服务器 ?...上传完成之后我们就可以关闭FTP软件了,回到宝塔面板,因为我们刚刚上传压缩包,不能直接使用的,我们在后台找到文件管理的界面,然后找到网站对应的目录,宝塔面板的目录一般是固定的,比如我刚刚新建的网站目录就是

    8.7K41

    解析Node.js 中的 Stream(流)

    例如,在文件压缩操作中,可以向文件写入压缩数据,并从文件中读取解压数据。 如果你用过 Node.js,可能已经遇到过流了。...只要监听 data 事件绑定回调,它就开始流动。然后,读取数据块并将其传递给回调。流的实现者可以决定 data 事件发出的频率。...添加一个readable 事件处理程序会自动使流停止流动,通过readable.read()消费数据。...)将数据压缩到流 zlib.createGunzip() 解压 gzip 流 zlib.createDeflate() 用 deflate (一种压缩算法)将数据压缩到流 zlib.createInflate...unpipe – 当你在可读流上调用unpipe停止将其输送到目标流中时发出。 总结 这就是所有关于流的基础知识。 流、管道和链式操作是 Node.js 的核心和最强大的功能。

    2.6K30

    基于bat脚本的前端发布流程设计与实现

    好一点的就带上个时间方便回溯,比如app-202206012002.zip这种,然后打开相关的ftp工具,把压缩好的包传到远程服务器,最后在服务器解压,放到nginx指定的html目录下,这一趟发版就算是齐活了...第一个就是,我们在解决当前问题的时候,尽量不要引入一些新事物去增加问题本身的复杂度,基于楼上这件事本身就是敲敲命令行(包括你说压缩上传,本质不就是一条命令嘛),所以js选手、py选手pass。...所以在这里,我们试图通过windows自身的一些方法去压缩文件,皇天不负赶路人,我在csdn看到一篇帖子https://blog.csdn.net/d_r_l_t/article/details/100584748.../zip.vbs dest.zip src 如何上传到linux服务器?...注释掉了因为它打出来的日志太多了,刷屏了,就把它去掉,展示下整体的效果,图中应该是压缩到上传到Linux服务器的效果 image.png 最后 楼上的脚本就作为抛砖引玉,希望能够在前端发包方面帮助到读者

    62941
    领券