《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)

简介: 《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)
欢迎关注系列专栏《小团队web技术搭建》


《小团队web技术搭建》(一)环境和工具的准备-第一部分

《小团队web技术搭建》(二)环境和工具的准备-第二部分

《小团队web技术搭建》(三)环境和工具的准备-第三部分

《小团队web技术搭建》(四)虚拟机的安装使用

《小团队web技术搭建》(五)项目的简单部署方式

《小团队web技术搭建》(六)自动化部署方式(CI/CD)(一)

《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)

持续更新中...

上一篇文章我们讨论和试验了CI/CD流程,相信各位已对它有一个大体的了解,但其安装和配置都比较繁琐,市面上有一类平台提供傻瓜式的CI/CD服务,通过简单、人性化的操作界面,就能新建并运行起一个流水线,比如Github ActionGitee CICD流水线Teambition Flow(飞流)等等,所以自动化部署你可以考虑使用这一类平台。

使用这类平台还有一个好处,你的构建任务所消耗的服务器资源是“白嫖”的。

平台局限性

值得注意的是,这类平台存在一定局限性,会优先支持或者只支持自家产品线上的代码源或者服务器,比如说gitee流水线的代码源只支持gitee库,飞流只支持绑定阿里云主机或者自有主机(teambition属于阿里旗下);并且构建环境版本可能不够全,比如飞流的Node版本目前(截至交稿时间)最高12.2。

image.png

也就是说如果你要选择这类服务,你最好在特定平台下的代码源或服务器要选择该厂商下的CI/CD平台,并且是否能接受构建工具/语言的版本限制(当然,版本不够用的情况,你也可选择直接在服务器构建来绕开这个局限性)。

下面我们以Flow飞流为例(部署目标服务器需是阿里云提供),实验一下它的大体配置运行流程。

新建流水线

飞流是teambition产品生态下的其中一员,所以如果你的团队用的协作工具、git托管用的是它的产品,那用飞流是比较合适的。

这里我们还是用之前写的托管在github上一个简单前端demo进行测试,它的运行结果是一个Hello world网页,当然因为网络问题(有时候会遇到),我不建议你使用github进行此次试验,你可以使用gitee里的仓库进行试验。

image.png

现在我们开始,点击飞流首页中的新建流水线

image.png

根据部署项目的类型,按实际情况选择模板(不用担心,选错了可以删除重来,或者新建流水线后手动调整,你甚至可以选择一个空模板),这里我们以部署一个Nodejs项目为例,所以选了这个模板,然后点击创建:
image.png

配置流水线

绑定代码源

填写一个你流水线名称(一般是填写项目名称),然后绑定一个代码源,这里我们绑定刚才说的前端demo仓库,首次绑定仓库你可以需要账号授权(如github账号授权):

image.png

测试流程

这里配置你的测试流程,如果没有的话,你甚至可以把整个测试流程删掉,但是不建议去掉单元测试、代码风格等校验。

image.png

构建

然后来到构建这一栏,点击Node.js构建,我们按此项目的实际构建情况,配置构建脚本:

image.png
我们来解释下这段脚本:

# 进入要部署的项目目录,因为此仓库我们要部署的项目在`demo/cicd-demo`
cd demo/cicd-demo

# 安装Node.js依赖 当然这个demo不需要任何依赖,所以你可以省略
# npm install

# 构建
npm run build

在打包路径这里,按照本项目的情况填写:

./demo/cicd-demo/dist

image.png

部署

来到部署一栏,我们需要把飞流的构建产物放到我们的部署服务器,也就是真正运行这个项目的服务器。

如果你在主机组还没有服务器,你可以新建绑定一个,前提是它要是一个阿里云服务器或自有服务器:
image.png

绑定一个阿里云服务器,按进行授权:

image.png
这里必须要勾选阿里云颁发的唯一用户标志符,否则授权无效:
image.png

image.png

在阿里云控制台的服务器信息确认主机地区,名称等:
image.png

确认授权完成后回到刚才绑定主机的地方,按地区筛选出主机,然后绑定:

image.png

image.png

配置部署脚本,在上一篇文章我们已经为这个项目配置了nginx,并且解析到/www/projects/demo/demo2目录,所以这里的下载路径我们填写/www/projects/demo/demo2/package.tgz,也就是打包到服务器的构建物目录和包名:

image.png
构建脚本就是做了该文件解压到部署目录:

tar zxvf /www/projects/demo/demo2/package.tgz -C /www/projects/demo/demo2/

运行流水线

点击保存并运行,或者保存后退出流水线再运行,等待运行成功。

image.png

image.png

在这过程中如果报错了,你可以查看日志再次编辑流水线进行调整,或者你想了解它的工作过程也可以点击日志查看:

image.png

运行成功后,我们到服务器查看文件已经上传并解压完毕:

image.png

接下来我们查看部署地址http://47.96.177.197:8990/:

image.png

部署已完成,下次有代码更新时点击下运行项目对应的流水线即可,你可以按提示配置代码提交触发流水线,这种一般在测试环境可以用,生产环境慎用。

感谢阅读!欢迎关注系列专栏《小团队web技术搭建》
相关文章
|
2天前
|
SQL 缓存 搜索推荐
后端技术在现代Web开发中的应用与挑战
本文将深入探讨后端技术在现代Web开发中的重要性,涵盖从基础架构到性能优化的多个方面。通过分析当前主流后端技术的优缺点,并提供一些实用的解决方案和建议,帮助开发者更好地应对日常开发中的挑战。
15 1
|
8天前
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
18 6
【RF案例】Web自动化测试弹窗处理
|
8天前
|
安全 JavaScript Java
后端技术在现代Web开发中的实践与挑战
本文旨在探讨后端技术在现代Web开发中的关键作用,分析其在数据处理、业务逻辑实现和系统安全等方面的重要性。通过阐述常见的后端技术和框架,如Node.js、Django和Spring Boot,展示它们在实际项目中的应用。同时,文章将讨论后端开发所面临的主要挑战,包括性能优化、扩展性和维护性问题,以及如何应对这些挑战。最终,通过对实际案例的分析,总结出一套行之有效的后端开发最佳实践,为开发者提供参考。
31 5
|
8天前
|
人工智能 关系型数据库 数据安全/隐私保护
后端技术在现代Web开发中的应用与挑战
本文将深入探讨后端技术在现代Web开发中的重要性,通过分析其在数据处理、业务逻辑实现和安全性保障方面的应用,揭示后端技术的核心价值。同时,本文还将讨论当前后端开发面临的主要挑战,如高并发处理、数据安全、微服务架构的复杂性等,并给出相应的解决方案。无论是后端开发者还是对后端技术感兴趣的读者,都可以通过这篇文章获得启发和指导。
|
13天前
|
缓存 数据可视化 jenkins
推荐2款实用的持续集成与部署(CI&CD)自动化工具
推荐2款实用的持续集成与部署(CI&CD)自动化工具
|
19天前
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
45 7
|
6天前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
7天前
|
jenkins 测试技术 持续交付
自动化测试的高效之路:如何利用Python进行Web应用测试
【9月更文挑战第13天】在软件开发的快节奏中,自动化测试是确保质量和效率的关键。本文将引导你了解如何使用Python语言及其强大的测试框架来提升Web应用的测试效率。我们将一起探索编写简洁而强大的测试脚本的技巧,以及如何通过持续集成(CI)实现自动化测试流程。准备好让你的测试工作飞一般的感觉!
|
15天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
30 0
|
14天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
60 35