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

二. 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

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

如有错误,请大佬指正!

ASP.Net Core使用Jenkins配合pm2自动化部署项目的更多相关文章

  1. 使用Jenkins 安装和自动化部署项目

    安装 jenkins 安装方法可以使用war 安装 或者服务安装.我这里使用  rpm 安装 第一步: 我们使用的 centos  ,选着这个,直接 下载传到服务器上.或者 复制下载链接 到 服务器上 ...

  2. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

  3. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  4. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  5. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

  6. ASP.NET Core & Docker & Jenkins 零基础持续集成实战

    原文:ASP.NET Core & Docker & Jenkins 零基础持续集成实战 一.本系列教程说明 源代码管理工具:Gogs 持续集成工具:Jenkins 容器:Docker ...

  7. Jenkins+Gitlab+Ansible自动化部署(二)

    接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...

  8. Jenkins+Gitlab+Ansible自动化部署(三)

    接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...

  9. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  10. Jenkins+Gitlab+Ansible自动化部署(一)

    首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab  ...

随机推荐

  1. 【全】CSS动画大全之按钮【b】

    效果预览 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...

  2. Linux C基础——” Makefile “ 文件管理大师你拜访过嘛?

    Make简介: 工程管理器,顾名思义,是指管理较多的文件 Make工程管理器也就是个"自动编译管理器",这里的"自动"是指它能够根据文件时间戳自动发现更新过的文 ...

  3. mysql学习问题记录

    Q: 问题 MySQL在创建外键索引时,使用工具会出现创建完成但是闪一下就没了 使用CONSTRAINT '外键索引名' FOREIGN KEY ('xx') REFERENCES 数据库名 (xx) ...

  4. Cannot find loader com.jme3.scene.plugins.ogre.MeshLoader

    五月 20, 2022 2:46:07 下午 com.jme3.asset.AssetConfig loadText 警告: Cannot find loader com.jme3.scene.plu ...

  5. 效率跃升16倍!火山引擎ByteHouse助力销售数据平台复杂查询效率大幅提高

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群.   销售数据,是反映市场趋势.消费者行为以及产品表现的重要指标,也是企业做出精准决策的关键依据.因此,对销售数据 ...

  6. compileSdkVersion, minSdkVersion 和 targetSdkVersion,傻傻分不清楚【转】

    原文 https://blog.csdn.net/gaolh89/article/details/79809034 在Android Studio项目的app/build.gradle中,我们可以看到 ...

  7. 机器学习--决策树算法(CART)

    CART分类树算法 特征选择 ​ 我们知道,在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择.在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题. ...

  8. 合合信息推出国央企智能文档处理解决方案,AI赋能信创国产化

    信息时代,数字化转型已成为推动经济高质量发展的关键力量.国央企是国民经济的重要支柱,其数字化转型进程关乎着自身与产业链上下游企业的共同发展.文档的智能化处理可有效提升信息流转的效率.促进知识的沉淀与传 ...

  9. RxJS 系列 – Join Operators

    前言 前几篇介绍过了 Creation Operators Filtering Operators Join Creation Operators Error Handling Operators T ...

  10. SQL Server 中的 NUL 设备/NIL设备

    SQL Server 中的 NUL 设备/NIL设备 在 SQL Server 中,有一个特殊的设备叫做 NUL(注意,不是 NULL),它类似于文件系统中的"黑洞".NUL 设备 ...