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

 上一篇介绍了在云效平台导入代码的教程,本篇是整个教程的重点,使用云效平台实现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.运行流水线

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

补充

流水线的插件

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

阿里云流水线部署Python项目运行pip install -r requirements.txt很慢可能有以下几个原因: 1. 安装源的问题:pip默认从PyPI(Python Package Index)下载安装包,但是由于网络原因,访问PyPI速度较慢。可以考虑将安装源更改为国内镜像,例如清华大学的镜像源(https://pypi.tuna.tsinghua.edu.cn/simple/),这样可以提高下载速度。 2. 依赖包较多:requirements.txt文件中列出了项目所需的所有依赖包以及版本号,如果其中包含较多的依赖包,安装过程会较慢。可以通过优化requirements.txt文件,只安装必要的依赖包,或者将常用的依赖包提前安装,以减少安装时间。 3. 网络带宽限制:阿里云服务器的网络带宽可能受限,导致下载速度较慢。可以联系阿里云技术支持,了解网络带宽情况,并采取相应措施提升带宽或者调整网络环境以加快下载速度。 4. 硬件配置不足:如果阿里云服务器的硬件配置较低,例如CPU、内存等,可能会导致安装过程较慢。可以考虑升级服务器的硬件配置,以提升整体性能。 5. 其他原因:除了上述原因外,还可能存在其他因素导致安装速度慢,如服务器配置不正确、操作系统问题等。可以检查服务器配置和环境设置,确保其符合项目要求。 综上所述,阿里云流水线部署Python项目运行pip install -r requirements.txt很慢可能是因为安装源问题、依赖包数量、网络带宽限制、硬件配置不足等原因导致的。可以根据具体情况进行调整和优化,以加快安装速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值