ASP.Net Core使用Jenkins配合pm2自动化部署项目

一.  新建一个自由风格的软件项目

二. General配置(参数化构建)

1. 用来选择部署的服务器(我这里只添加了一个,如果需要添加多个,一行一个就可以了)

 2. 选择不同的环境变量

三、源码管理

1. 填写Github项目地址,选择Credential(Credential需要自己新建,根据自己情况添加即可)。

2. 在Branches to buid下边填写要拉取的远程分支(如图)

四、Buid Steps

1. 增加构建步骤-Send files or execute commands over SSH

    (1)选择Name之前,需要提前添加需要ssh的服务器的主机信息(当前使用windows服务器演示),包括地址,用户名,密码,例如:

  在Dashboard-系统管理-系统配置-Publish over SSH-新增

  Name随便填,能用来分辨即可,Hostname即ip地址,Username就是ssh的用户名,如果ssh需要密码,则再“高级”中勾选 "Use password authentication, or use a different key",然后填写密码。

       最后,在右下角点击“Test Configuration”,如果通过,则继续进行下一步。否则需要重复检查您自己的配置直到通过。

 (2)继续回到添加构建步骤,如下图,Name选择刚刚添加的ssh服务器信息,然后选择“高级”,勾选Verbos output in console(从Jenkins控制台输出详细步骤),勾选Label,Label则填写参数化构建过程中的SSH_SERVER中的选项列表的选项对应(一个选项        对应一个ssh步骤模块)。

   (3)Transfers配置

      Exec command下边填写命令

d: && 
if not exist mt4-manager md mt4-manager &&
mkdir D:\\mt4-manager\\$MANAGER &&
cd "mt4-manager" &&
if not exist publish md publish &&
cd "d:\\mt4-manager\\publish" &&
if not exist $MANAGER md $MANAGER

     释义:发送cmd命令

           d: ->跳转到D盘

    if not exist mt4-manager md mt4-manager -> 如果不存在mt4-manager文件夹则创建
    mkdir D:\\mt4-manager\\$MANAGER -> 创建动态名称目录($MANAGER对应参数化构建过程中的MANAGER对应的选项)
    cd "mt4-manager" -> 跳转到mt4-manager目录
后边的命令同以上

 “高级”菜单中,Exec timeout修改为0,并且勾选Exec in pty。

 2. 在同模块下,添加Transfer Set子模块

 在Exec command下边填写以下命令:

pm2 delete "mt4-manager-api-$MANAGER"

3. 添加构建步骤-执行shell

 输入命令(拷贝Jenkins服务器上的代码到ssh服务器上对应的目录):

scp -r ../mt4-manager-api mt4@192.168.0.130:d:\\mt4-manager\\$MANAGER

4. 再次添加构建步骤-Send files or execute commands over SSH

 配置跟刚刚配置的ssh模块一样,但是Exec command输入为:

d: && 
cd "D:\mt4-manager\$MANAGER\manager-api-v2" &&
dotnet publish -c Release -o D:\mt4-manager\publish\$MANAGER &&
cd "D:\mt4-manager\publish\$MANAGER" &&
powershell -Command "(Get-Content appsettings.json -Raw) -replace 'devDemo','$MANAGER' | Set-Content appsettings.json" &&
pm2 start "manager-api-v2.exe" --name "manager-api-$MANAGER" &&
echo start success

别忘了“高级”菜单中的配置

释义:

进入d盘,进入manager-api-v2文件夹(项目根目录),

发布项目到指定文件夹

进入发布后的文件夹项目根目录

使用powershell命令,将appsettings.json中配置的环境变量值,由devDemo替换为动态参数值$MANAGER,对应参数化构建中的$MANAGER中的选项

使用pm2命令运行.net core程序,名称为manager-api-(动态参数)

输出 start success

 

到此,整个的配置过程就完成了。查看结果

 

如有错误,请大佬指正!

posted @ 2024-11-04 16:34  一叶、知秋  阅读(634)  评论(2编辑  收藏  举报