首页 > 其他分享 >阿里云免费的CI/CD平台(云效平台)使用教程(二) - 创建流水线

阿里云免费的CI/CD平台(云效平台)使用教程(二) - 创建流水线

时间:2024-07-05 11:56:06浏览次数:18  
标签:web CI 平台 jar www CD 构建 流水线 backend

 上一篇介绍了在云效平台导入代码的教程,本篇是整个教程的重点,使用云效平台实现CI/CD功能。

简介

什么是流水线

流水线有三个重要的概念,源、构建、部署,简单理解就是选择流水线的原材料,添加制作原材料的步骤,输出成品。

在这里原材料就是源代码或者与源代码相关的必要附件。制作步骤就是对源代码进行编译、打包等操作,如果是PHP等解释型语言就可以省略打包等操作。输出就是将处理好的源代码部署到线上。

创建流水线

云效平台的流水线功能就是CI/CD。

从导入的代码库中创建

1.从模板创建

第一次接触CI/CD的推荐使用模板,有利于更快的理解和使用平台。这里以部署java web项目为例。

云效平台提供了常用开发语言构建CI/CD的模板,如java、python、node.js等。推荐新手使用符合自己的模板搭建CI/CD,如果对CI/CD很熟当然可以选择空模板自行搭建。

1.1.进入要构建流水线的库

点击 创建流水线 生成一条新的流水线配置

1.2.选择java构建到阿里云ecs模板

选择模板
选择模板

一条新的流水线
1.2.1 设置流水线源

这里设置要发布的代码、分支。一般只需要设置仓库、分支即可

1.2.2 配置构建步骤

这一步是将java项目进行打包编译,只需要关注构建和上传这两步

2.2.1 构建

构建也比较简单,以maven项目为例。通常我们都是用IDEA直接打包成jar文件了,这里只需要把IDEA打包的命令放在这里即可。

在构建命令里输入mvn package

2.2.2 上传

这里要注意设置正确的上传文件。

我发布的项目结构是maven多模块的,这里需要选择分支下真正对外服务的模块的打包文件。例如我的api模块是真正对外提供web服务的,这里我就设置成上传api模块下的jar文件。

1.2.3 配置部署步骤

部署阶段主要有三步,一是选择要拉取的制品(上一步上传的文件),二是选择要部署的主机,三是配置部署的命令。

标题

部署阶段的前两步都简单,只需要选择即可。具体的部署命令要稍微复杂点。

首先指定把云效平台打包后的文件下载到主机的位置和命名,然后使用shell脚本配置部署。

具体的shell脚本

我这里的shell脚本写的比较长,其实主要的逻辑就是先解压下载的制品,判断是否有进程在执行,如果有就直接kill,然后用新解压的jar文件启动项目。

我这个shell脚本中的很多逻辑都是为了处理文件的,如果对项目目录的整洁度没有要求就可以省去很多代码。

if [ ! -d "/home/admin/application" ]
then
    mkdir -p /home/admin/application
    echo "create dir /home/admin/application"
fi
if [ ! -d "/www/web/backend" ]
then
    mkdir -p /www/web/backend
    echo "create dir /www/web/backend"
fi

if [ ! -f "/home/admin/application/package.tgz" ]
then
    echo "upload file failed"
else
    tar zxvf /home/admin/application/package.tgz -C /www/web/backend/
fi

if [ -f "/www/web/backend/backend.jar" ]
then
    rm -f "/www/web/backend/backend.jar"
fi
if [ -f "/www/web/backend/api-0.0.1-SNAPSHOT.jar" ]
then
    mv /www/web/backend/api-0.0.1-SNAPSHOT.jar /www/web/backend/backend.jar
    cd /www/web/backend/
    ID=`ps -ef | grep 'java -jar backend.jar' | grep -v grep | awk '{print $2}'`
    echo $ID
    for id in $ID
    do
        kill -9 $id
        echo "kill $id"
    done
    nohup java -jar backend.jar > /tmp/backend-launch.log 2>&1 &
else
    echo "file not exist /www/web/backend/api-0.0.1-SNAPSHOT.jar"
fi

2.从空模板创建

类似PHP或者vue前端项目在构建和部署时都比较简单,没有复杂的构建和启动命令,使用空模板比较合适。

只要配置好构建和部署阶段操作文件的命令就会比较顺利创建出流水线。

3.运行流水线

完成部署的配置后就可以保存流水线了

补充

流水线的插件

在构建和部署阶段都有插件可以设置,主要是对流水线执行阶段进行通知。推荐可以都配置一个邮件通知的插件,这样每次发布都会有相应的通知,可以实时掌握项目发布进度。

标签:web,CI,平台,jar,www,CD,构建,流水线,backend
From: https://blog.csdn.net/weixin_50849253/article/details/140130356

相关文章

  • C++ 空间和时间高效的二项式系数(Space and time efficient Binomial Coefficient)
    这里函数采用两个参数n和k,并返回二项式系数C(n,k)的值。 例子: 输入:n=4和k=2输出:6解释:4C2等于4!/(2!*2!)=6输入:n=5和k=2输出:10解释:5C2等于5!/(3!*2!)=10        在本文中,我们讨论了O(n*k)时间和O(k)额外空间算法。C(n,......
  • Java 空间和时间高效的二项式系数(Space and time efficient Binomial Coefficient)
    这里函数采用两个参数n和k,并返回二项式系数C(n,k)的值。 例子: 输入:n=4和k=2输出:6解释:4C2等于4!/(2!*2!)=6输入:n=5和k=2输出:10解释:5C2等于5!/(3!*2!)=10        在本文中,我们讨论了O(n*k)时间和O(k)额外空间算法。C(n,......
  • HCIA知识点<5>--Vlan:虚拟局域网
    前言前面我们介绍了静态路由与动态路由,今天我们来讲一下如何使一个路由器接口完成多个路由器接口的工作...在交换机和路由器在协同工作后,将原来的一个广播域在逻辑上,切分为多个虚拟的广播域。[SW1]displayvlan 查看vlan1.VID----VlanID   用来区分和标定不同的vl......
  • BACON: Supercharge Your VLM with Bag-of-Concept Graph to Mitigate Hallucinations
    目录概BACON代码[YangZ.,FengR.,etal.BACON:Superchargeyourvlmwithbag-of-conceptgraphtomitigatehallucinations.2024.]概本文提出了一种新的数据格式:BACON(BAg-of-Conceptgraph).BACONBACON希望将一个图片转换为\(G=(D,O,R,B)\)的数据格式......
  • CI3驱动器(drivers)创建与使用
    一、创建文件和目录结构/application/libraries/Driver_nameDriver_name.php//为了在大小写敏感的文件系统下保证兼容性,Driver_name目录必须以 ucfirst() 函数返回的结果格式进行命名。driversDriver_name_subclass_1.phpDriver_name_subcla......
  • 加入运动健康数据开放平台,共赢鸿蒙未来
    HarmonyOSSDK运动健康服务(HealthServiceKit)是为华为生态应用打造的基于华为帐号和用户授权的运动健康数据开放平台。在获取用户授权后,开发者可以使用运动健康服务提供的开放能力获取运动健康数据,基于多种类型数据构建运动健康领域应用与服务,为用户打造丰富、便捷、专业的运动健......
  • 人工智能AI介绍及常用软件在国产化平台的支持情况
    一、简介(一)定义详解人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智......
  • 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署
    本文分享自华为云社区《ArgoCD对接CCE完成不同测试、生产环境业务部署》,作者:可以交个朋友。一背景说明ArgoCD是用于Kubernetes的声明性GitOps持续交付工具,遵循GitOps模式,该模式使用Git仓库作为定义所需应用程序状态的真实来源。ArgoCD可在指定的目标环境中自动部署所需的......
  • HCIA——路由器
    1.路由器隔离洪范范围2.没有pc不一定没有广播域3.广播域的利用率高,可靠性高,网络质量高,产生垃圾信息少,交换机路由器多一些,流量分流可以做得更好,降低设备压力。4.现实中的互联网不可能职业固定设备,因此可拓展性是需要考虑的,互联网的转发距离很大路由器与路由器仅负责通信的链......
  • 智慧矿山EasyCVR视频汇聚系统,助力矿井视频多业务融合及视频转发服务平台建设
    一、方案背景随着矿井安全生产要求的不断提高,视频监控、数据传输、通讯联络等业务的需求日益增长。为满足矿井生产管理的多元化需求,提高矿井作业的安全性和效率,TSINGSEE青犀EasyCVR视频汇聚/安防监控综合管理平台,旨在构建一个矿井视频多业务融合及视频流媒体转发服务平台。该平台......