react项目_React 前端项目自动化构建、部署

7107c37a-5c38-eb11-8da9-e4434bdf6706.svg

React项目

     自动构建部署

7407c37a-5c38-eb11-8da9-e4434bdf6706.svg e601f21b8f74530a2e9f3b8085e3c4ea.png e88d462e27004fe98ff184c2555d7c5d.png

随着微服务、容器、云计算的发展,近些年 DevOps、CI/CD 等概念越来越多地映入大家的眼帘。DevOps 是现在流行的一种软件开发方法,对传统软件应用生命周期的重构以支持敏捷开发和持续集成持续交付的一套方法论,DevOps打破原来的开发和运维之间的界限,将分离的两个流程融合到了应用的研发过程中,这些改变的目的是为了支持和适应应用快速、安全、可持续和频繁的版本发布。

本文记录对React web项目实现简单的持续集成、持续部署。

01

环境

■ 代码库GitLab

■ 自动化平台Jenkins(docker安装)

fdfe3b0f0306028dbf910b22fe6567fd.png

请在Jenkins插件中安装Gitlab插件

02

自动化配置

整体流程图

fded4e20373d7f269ee5f8bfd108b12e.png

Step 1

添加构建镜像文件、自定义nginx配置文件

在你的项目中新建DockerFile、nginx.conf用于构建nginx镜像(nginx用于运行react项目),如下:

6b7131421274801a66d9a27f0e8d2c9a.png d6134a9e0afabd067c428ed94f97b01f.png

然后将代码上传至GitLab仓库。

Step 2

Jenkins新建自动化软件项目

在Jenkins里面新建一个自由风格的软件项目,依次配置源码管理 - 构建触发器 - 构建环境 - 构建。

Jenkins项目配置

源码管理选择Git输入Repository和登陆验证、构建的分支

38ea9f8f508629637d30672173f35d16.png

构建触发器选择Build when a change is pushed to GitLab,后面的地址GitLab webhook URL即是GitLab项目里通用-集成输入的webhook(同时需要高级里生成Secret token)

a9d51ad730d1a5dc0711dc6f1c57c24c.png

构建环境中选择Delete workspace before build starts(需要可以选择)

d68688a9c456b0018cbd639195d21dd6.png

构建执行shell

272903e6a2f48a00852958311a566e86.png 8407c37a-5c38-eb11-8da9-e4434bdf6706.svg

如若主机没有Docker环境

Jenkins只是传统方式安装

请在Jenkins中安装Publish over SSH(或FTP)

执行Shell只需要保留开始构建项目那段

最后增加构建后操作

Send build artifacts over SSH(或FTP)

《传统自动化部署方式》

8807c37a-5c38-eb11-8da9-e4434bdf6706.svg

Step 3

GitLab项目集成webhook

在项目通用-集成界面填入构建触发器中的GitLab webhook URL & Secret Token,在Trigger中选择Push填入master分支上推送,点击add webhook完成集成 - push到master分支都会触发Jenkins项目流程。

点击测试按钮,当出现HTTP 200代表集成成功。

Hook executed successfully: HTTP 200

本文只是对DevOps中自动构建部署环节做了个简单的实现,比较适合小团队或者个人开发,省去频繁构建、发布的环节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React前端工程化是指在React项目开发过程中,通过一系列的工具和规范来提高开发效率、代码质量和项目可维护性的一种方法。下面是React前端工程化的几个重要方面: 1. 代码组织:合理的组织项目代码结构,可以按照功能或模块进行划分,使得代码易于维护和扩展。 2. 模块化开发:使用ES6的模块化语法,将项目拆分为多个独立的模块,每个模块负责特定的功能,提高代码的可复用性和可维护性。 3. 构建工具:使用构建工具(如Webpack、Parcel等)来自动化构建过程,包括代码编译、打包、压缩等,提高开发效率。 4. 组件化开发:将页面拆分为多个可复用的组件,每个组件负责特定的功能,通过组合不同的组件来构建页面,提高代码的可维护性和可复用性。 5. 状态管理:使用状态管理库(如Redux、Mobx等)来管理应用的状态,使得状态变更可追踪、可预测,方便进行状态共享和数据流控制。 6. 自动化测试:使用自动化测试工具(如Jest、Enzyme等)编写单元测试、集成测试和端到端测试,保证代码质量和功能的稳定性。 7. 代码规范:使用代码规范工具(如ESLint、Prettier等)对代码进行静态检查和格式化,统一团队的代码风格,提高代码质量和可读性。 8. 持续集成与部署:使用持续集成工具(如Jenkins、Travis CI等)将代码自动构建、测试和部署到服务器,实现快速迭代和持续交付。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值