阿里云效产品【流水线Flow】企业项目代码一件发布各个云服务器

news2025/1/16 14:47:48

文章目录

  • 前言
  • 一、准备项目代码
    • 1.默认的项目
    • 2.浏览器访问
  • 二、使用步骤
    • 1.进入工作台
    • 2.创建流水线
    • 3.代码源
    • 4.代码扫描
    • 5.单元测试
    • 6.代码构建
    • 7.主机部署
    • 8.部署脚本
  • 三、运行测试
    • 1.运行流水线
    • 2.测试报告
    • 3.访问项目
  • 总结


前言

「流水线」,又名「Flow」,是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。

提示:上面简述来自:阿里云。个人理解就是流水线Flow 自动化部署,类似于 Jenkins,是开发中的一种可持续集成工具,代码检测,支持多种语言部署,废话不多说不说,上操作。


在这里插入图片描述

下面开始演示从0 - 1 项目部署发布整个环节

一、准备项目代码

1.默认的项目

  • Codeup-Demo在这里插入图片描述
  • 拉取代码【不会的可以看这一篇】阿里云效产品【代码管理Codeup】企业项目代码管理在这里插入图片描述
  • 看到代码是一个SpringBoot项目
  • 项目启动,默认端口【8080】

2.浏览器访问

  • 浏览器访问 http://localhost:8080/ 里面有个接口【浏览器随机数打印两句话】
@RestController
public class P3cScannerController {

    @RequestMapping("/")
    public String index() {
        Random R = new Random();
        int randInt = R.nextInt();

        if (randInt % 2 == 0)
            return HelloWorld;

        return HELLO_WORLD;
    }

    private static final ExecutorService THREAD_EXECUTOR = Executors.newSingleThreadExecutor();

    private String HelloWorld = "Welcome to Codeup";

    private static final String HELLO_WORLD = "Nice to meet you";
}
  • 刷新浏览器,即会重新掉一次接口
    在这里插入图片描述
    在这里插入图片描述

二、使用步骤

1.进入工作台

  • 点击运行【流水线】在这里插入图片描述

2.创建流水线

  • 选择项目对于的开发语言,点击创建在这里插入图片描述

3.代码源

  • 选择代码源【这里可以有多种选择,我这里选阿里的这个Codeup】 在这里插入图片描述

  • 上图中:您配置流水线源的源文件将会被下载至工作目录下。如填写demo_abc,则流水线会将文件下载至构建环境的/root/workspace/demo_abc路径下

  • 默认路径是在: /root/workspace/

  • demo_abc : 这个名字可以自定义

4.代码扫描

  • Java代码扫描在这里插入图片描述

5.单元测试

  • Maven单元测试【maven 打包命令不局限于此,可自行添加或删除修改,根据项目需要】在这里插入图片描述

6.代码构建

  • 这里需要注意的是,假如是微服务项目,项目中有多个子模块,这里需要注意 target路径地址
  • 举例
general								 父模块
├─general-admin                      系统模块
│  ├─general-admin-client
│  └─general-admin-server
├─general-auth                       授权认证模块
│  ├─general-auth-client
│  └─general-auth-server
├─general-commons                    公共模块
│  ├─general-commons-base-core       核心模块【base】
│  ├─general-commons-job             任务调度
│  ├─general-commons-oss             文件存储
│  ├─general-commons-sms             消息通讯
  • 写法
general/general-admin/general-admin-server/target/
general/general-auth/general-auth-server/target/
后面的以此类推.........
  • 代码构建【】在这里插入图片描述

7.主机部署

  • 主机部署【右边新建主机】在这里插入图片描述
  • 这里选择主机类型【我这里是腾讯云的服务器】大家可以根据自己的服务器来进行选择在这里插入图片描述
  • 添加主机【复制命令,在自己发服务器中执行:一定要是root权限】在这里插入图片描述
  • 提示 : 这个命令只是一个案例,具体还是以自己生成的为准
 bash  <(curl http://agent-install-default.oss-cn-hangzhou.aliyuncs.com/production-install.sh) 'http://devops.aliyuncs.com/api/getSnByRegion?regionId=46e8e93a-1696-4e71-8563-fc64b07de17b&sign=mlzDn1GYyPRyHN0RXf%2FunQ%3D%3D&aliyunRegion=default&timestamp=1671120883579&scope=flow' http://agent-install-default.oss-cn-hangzhou.aliyuncs.com/production-agent.tgz http://devops.aliyuncs.com/api/verifySnAndRegionId?sign=afe3vxJl6A7jxvDde9p%2BYw%3D%3D 46e8e93a-1696-4e71-8563-fc64b07de17b 1671120883579 default
  • 执行命令,安装完成如下图在这里插入图片描述
  • 安装后等待几秒钟,这里就会显示刚刚添加的服务器在这里插入图片描述
  • 详细配置在这里插入图片描述
  • 部署配置-下载路径:/home/admin/app/package.tgz 点击运行流水线的时候,服务器会会从Git中拉取代码,并打包,打包后的文件名称为 :package.tgz ,所以在部署脚本可以将这个文件解压完后选择性的删除
  • 执行用户:这里根据服务器分配的权限来定,一般使用 root

8.部署脚本

  • 官网介绍:点击访问
  • 因为实际的部署脚本已经打包到了构建产出的压缩包中,因此部署脚本可以简单的进行解压和执行即可
  • 首先创建一个目录【存放部署脚本deploy.sh,及项目 jar 文件】
mkdir -p /home/admin/application
# 解压到 temp 临时目录下
tar zxvf /home/admin/app/package.tgz -C /home/admin/app/
# 执行部署脚本
sh /home/admin/application/deploy.sh restart
  • 写部署脚本【deploy.sh】前,首先需要知道项目打包后的名称是什么,idea中打包测试在这里插入图片描述

  • deploy.sh 脚本内容

#!/bin/bash
PID_CODEUP=$(ps -ef | grep codeup-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID_FXIAOKE" ]
then
    echo codeup-demo-0.0.1-SNAPSHOT.jar 服务已关闭。
else
    echo 正在关闭codeup-demo-0.0.1-SNAPSHOT.jar 服务,进程ID为:$PID_CODEUP
    kill $PID_CODEUP
fi

echo 删除历史版本
rm -rf /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar
echo /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar

echo 正在移动项目文件
sudo mv -f /home/admin/app/temp/codeup-demo-0.0.1-SNAPSHOT.jar /home/admin/application/
echo /home/admin/app/temp/codeup-demo-0.0.1-SNAPSHOT.jar /home/admin/application/

echo 删除临时生产的文件
rm -rf /home/admin/app/

echo 服务codeup-demo-0.0.1-SNAPSHOT.jar正在启动中........
nohup java -jar -XX:+UseG1GC -Xms128m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=512m /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &
  • 脚本简述:

1、首先去根据这个项目名称去查找当前以启动的线程,然后使用kill命令,停止该进程。
2、删除之前的历史版本
3、在解压后的文件中,找到jar文件并移动至指定目录下。
4、删除生成的临时文件。
5、启动项目【这里根据自己的项目添加 JVM 运行参数大小】

三、运行测试

1.运行流水线

  • 点击右上方【运行】在这里插入图片描述

2.测试报告

  • 如下图在这里插入图片描述

3.访问项目

  • 浏览器访问项目:ip:8080在这里插入图片描述

  • 项目部署成功!

总结

以上就是内容为个人部署发布的内容,本文仅仅是简单介绍了流水线的玩法,大家有更好的玩法可以留言相互讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、Qt定时器与文本编辑器制作《QT 入门到实战》

学习目标 了解 qt 的 pixmap了解 qt 的 label 如何显示图片了解定时器的开启了解定时器的关闭了解文件如何进行读取了解 QFileDialog 的使用了解了一个文本编辑器的基本编写巩固了 connect 的使用 一、制作一个图片浏览器 1.1 Pixmap 在 Qt 中使用 Label 可以显示文本&…

加密市场的「五维投资法」

一. 投资决策三要素 投资方法纷繁庞杂&#xff0c;但万变不离其宗&#xff0c;影响最终收益的因素&#xff0c;脱不开三个方面&#xff1a;胜率、赔率、仓位&#xff0c;通俗来说&#xff1a; 胜率&#xff1a;这一项投资&#xff0c;赢面有多大&#xff1f;有多大的把握盈利…

毕业设计-基于大数据招聘岗位可视化系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

【学习笔记】JDK源码学习之ArrayList(附带面试题)

【学习笔记】JDK源码学习之ArrayList&#xff08;附带面试题&#xff09; 引言&#xff1a; 什么是 ArrayList &#xff1f;它和 List 又有什么关系&#xff1f;两者又有什么区别&#xff1f; 带着以上问题让我们来深入走进 ArrayList 。 1、ArrayList的使用 demo&#xf…

动态照片怎么制作?推荐几种操作简单的制作方法

动态照片应该怎么弄呢&#xff1f;不知道大家的家里有没有那种家庭相册&#xff0c;里面会有一些爷爷奶奶、爸爸妈妈们以前的照片&#xff0c;翻看这些照片的时候&#xff0c;就会想到那个时候的他们。不过相册里的照片基本上是一成不变的&#xff0c;有时候我会想&#xff0c;…

手写Spring6(实现应用上下文)

文章目录目标设计流程项目结构一、实现1、定义实例化前-BeanFactoryPostProcessor2、定义初始化前后-BeanPostProcessor3、定义上下文接口--ApplicationContext4、应用上下文抽象类实现--AbstractBeanFactory5、获取Bean工厂和加载资源--AbstractRefreshableApplicationContext…

webpack学习-cdn加速,使用 Tree Shaking,提取公共代码,分割代码按需加载 使用 Prepack开启 Scope Hoisting

4-9 CDN 加速 什么是 CDN 虽然前面通过了压缩代码的手段来减小网络传输大小,但实际上最影响用户体验的还是网页首次打开时的加载等待。 导致这个问题的根本是网络传输过程耗时大,CDN 的作用就是加速网络传输。 CDN 又叫内容分发网络,通过把资源部署到世界各地,用户在访问…

Mentor-dft 学习笔记 day43-Power-Aware DRC and ATPG

Power-Aware DRC and ATPG 本章介绍用于ATPG工具的power-aware DRC和ATPG流程。Power-Aware Overview 电子行业在设计连续体的主要方面采用了低功耗特性。EDA供应商和主要半导体公司定义了常用的电力数据标准格式来描述电力需求&#xff1a;UPF和CPF。Tessent Shell supports t…

Centos7迁移Anolis OS7系统

2020年12月08日CentOS官方宣布CentOS项目将停止&#xff0c;并推出CentOS Stream项目&#xff0c;详见公告 CentOS未来将会从 RedHat Enterprise Linux(RHEL) 复刻版本的 CentOS Linux 转向 CentOS Stream。 对处于生命周期中的 CentOS 版本后续影响&#xff1a; • CentOS Lin…

Codeforces Round #838 (Div. 2) A-C题解

cf比赛链接 目录 A. Divide and Conquer 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; B. Make Array Good 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; C. Binary Strings are Fun&#xff08;什么疑惑题面&#xff09; 题意&#xff1a;首先的两个…

PG::Sumo

nmap -Pn -p- -T4 --min-rate1000 192.168.170.87 nmap -Pn -p 22,80 -sCV 192.168.170.87 查看80端口的页面&#xff0c;没有什么有用的信息 尝试路径爆破&#xff0c;发现了/cgi-bin目录&#xff0c;就想到了HTB中的Shocker靶机。 继续爆破 wfuzz -c -z file,/usr/share/…

03. SQL注入漏洞基础

03. SQL注入漏洞基础 SQL注入漏洞基础&#xff08;上&#xff09; /01 SQL注入的原理 SQL注入原理 SQL注入产生的原因 当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理&#xff0c;那么攻击者就可以构造特殊的SQL语句&…

泓德基金:以超融合构建生产及灾备环境,承载 O32 等关键业务系统

案例亮点 承载 O32、TA、估值等基金行业关键业务系统生产与灾备环境。 POC 期间对超融合应用承载能力以及数据库支撑能力分别进行验证&#xff0c;性能与稳定性均满足需求。 超融合首先作为灾备资源池部署&#xff0c;稳定运行一年后&#xff0c;转为生产资源池&#xff0c;并…

高企认定没专利?专利评分低?如何评分?

众所周知&#xff0c;高企申报是一场“持久战”&#xff0c;申报知识产权、归集研发费用、科技成果转化等工作都需要一定的准备时间。其中&#xff0c;知识产权的获取所需要的时间是最长的(两年左右)&#xff0c;对高新认定评分的影响也是最大的。因此&#xff0c;知识产权的研…

来聊一聊 ElasticSearch 最新版的 Java 客户端

可能不少小伙伴都注意到了&#xff0c;从 ElasticSearch7.17 这个版本开始&#xff0c;原先的 Java 高级客户端 Java High Level REST Client 废弃了&#xff0c;不支持了。老实说&#xff0c;ElasticSearch 算是我用过的所有 Java 工具中&#xff0c;更新最为激进的一个了&…

Unity中的Mask组件增加DrawCall的原因

Unity中的Mask组件增加DrawCall的原因 简介 常说mask组件不要常用&#xff0c;因为会增加drawcall&#xff0c;增加性能消耗&#xff1b;当然作为一个需要背八股文的同学而言&#xff0c;仅仅知道会增加性能消耗是不够的&#xff0c;所以这里简单看下其原理。 首先看下在Uni…

监控系列(三)自定义DM采集项(exporter)+主机监控+grafana展示

一、概括 本篇不涉及达梦数据库搭建&#xff0c;操作环境需提前准备prometheus以及grafana的搭建&#xff0c;请跳转到前文查看 监控系列&#xff08;一&#xff09;DM8PrometheusGrafana搭建 监控系列&#xff08;二&#xff09;Dem对接Prometheusgrafana显示 自定义的采集…

基于数字孪生技术的智慧变电站Web3D可视化系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——数字孪生智慧变电站三维可视化系统。多维度呈现变电站场景&#xff0c;实现变电站运行态势的实时监测&#xff0c;运维设备、控制系统和信息系统的互联互通。加强变电站设备的全状态感知力与控制力…

03-MySQL查询数据

目录 DQL语言 单表查询 AS子句 DISTINCT关键字的使用 WHERE条件语句 逻辑操作符 比较操作符 BETWEEN范围查询 LIKE模糊查询 使用IN进行范围查询 NULL空值条件查询 连接查询&#xff08;多表查询&#xff09; INNER JOIN内连接 等值和非等值的连接查询 外连接 JOIN对比…

49.Python的while循环

49.Python的while循环 文章目录49.Python的while循环1. 什么是循环2. 什么是while循环3.课题导入4.while循环语法5.while循环执行流程6. if和while的区别7.课堂练习1. 什么是循环 【循环的百度释义】 特指运行一周而回到原处&#xff0c;再转。 反复地连续地做某事。 【循环…