1、打开Jenkins,选择新建Item
2、填写项目名称,选择自由风格,点击确定
3、勾选This project is parameterized,开始设置参数
先看下这几种参数类型:常用的就几种,本文中用到的就
Choice Parameter:选择型参数
String Parameter:字符串参数
4、我们开始添加参数
这样以此类推,下面把参数都列举一下
分支名称-选择参数:
BRANCH_NAME master 分支名称
编译方式-选择参数:
COMPILE_MODE Debug Release 编译方式
启动项目所在文件夹-字符串参数:
PROJECT_START_PATH src/JwtDemoApi 启动项目文件夹
主版本号-字符串参数:
MAJOR_NO 1 主版本号
次版本号-字符串参数:
BUILD_NO 1 次版本号
IIS站点名称-字符串参数:
SITE_NAME JwtDemoApi IIS站点名称
IIS站点端口号-字符串参数:
SITE_PORT 809 IIS站点端口号
IIS发布站点绝对路径-字符串参数:
SITE_PUBLISH_PATH E:\WebSite\WebSite_JwtDemoApi IIS发布站点绝对路径(结尾不带斜杠,vs发布的路径/临时发布文件夹)
IIS运行地址绝对路径-字符串参数:
SITE_RUN_PATH E:\Feature\Host IIS运行站点绝对路径(结尾不带斜杠,IIS运行的就是这个目录下的文件,需要手动加一个Config文件夹,启用这个文件下的配置文件)
5、配置源码管理-git
Repository URL:填你的git仓库地址
Credentials:添加一个能拉取操作你git仓库的账号
指定分支:${BRANCH_NAME},这里填写的变量
6、构建-增加构建步骤,选择Execute Windows Batch Command(执行windows bat命令)
echo "进入目录" cd %PROJECT_START_PATH% echo "还原项目包" dotnet restore rem dotnet restore -s "https://api.nuget.org/v3/index.json" -s "https://jhrs.com/lib/nuget" echo "编译代码" dotnet build -c "%COMPILE_MODE%" echo "停止IIS站点" C:\Windows\System32\inetsrv\appcmd.exe stop site "%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe stop appPool /appPool.name:"%SITE_NAME%" echo "删除现有文件,重新发布" del /f /s /q %SITE_PUBLISH_PATH%\*.* echo "发布项目" dotnet publish -c %COMPILE_MODE% -r win-x64 --self-contained true -o "%SITE_PUBLISH_PATH%" echo "新建版本号" md "%SITE_RUN_PATH%\%MAJOR_NO%.%BUILD_NO%.%BUILD_ID%" echo "拷贝项目到当前版本" xcopy %SITE_PUBLISH_PATH% %SITE_RUN_PATH%\%MAJOR_NO%.%BUILD_NO%.%BUILD_ID% /s/e/y echo "拷贝指定文件夹的配置文件" xcopy %SITE_RUN_PATH%\Config %SITE_RUN_PATH%\%MAJOR_NO%.%BUILD_NO%.%BUILD_ID% /s/e/y echo "删除站点" C:\Windows\System32\inetsrv\appcmd.exe delete site "%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe delete apppool "%SITE_NAME%" echo "新建站点" C:\Windows\System32\inetsrv\appcmd.exe add site /name:"%SITE_NAME%" /bindings:http://*:%SITE_PORT% /physicalpath:"%SITE_RUN_PATH%\%MAJOR_NO%.%BUILD_NO%.%BUILD_ID%" C:\Windows\System32\inetsrv\appcmd.exe add AppPool /name:"%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe Set app "%SITE_NAME%/" /applicationpool:"%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe set apppool /apppool.name:"%SITE_NAME%" /managedRuntimeVersion:"" echo "启动项目" C:\Windows\System32\inetsrv\appcmd.exe start site "%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe start appPool /appPool.name:"%SITE_NAME%" C:\Windows\System32\inetsrv\appcmd.exe recycle appPool /appPool.name:"%SITE_NAME%"
7、编译如果提示nuget 不存在则在工作目录新建 nuget.config文件,因为你的项目中,可能引用的dll来自你私有nuget
8、自动构建,根据仓库的变化,自动构建。
Poll SCM:设置定时检查代码仓库是否有变更,有变更则构建
定时构建语法
* * * * *
第一个*表示分钟,取值0~59
第二个*表示小时,取值0~23
第三个*表示一个月的第几天,取值1~31
第四个*表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
H开头是定时构建,不带H的定时检查,有变化才构建
每隔5分钟构建一次
H/5 * * * *
每两小时构建一次
H H/2 * * *
每天中午下班前定时构建一次
0 12 * * *
每天下午下班前定时构建一次
0 18 * * *
每15分钟构建一次:H/15 * * * * 或*/5 * * * *
每天8点构建一次:0 8 * * *
每天8点~17点,两小时构建一次:0 8-17/2 * * *
周一到周五,8点~17点,两小时构建一次:0 8-17/2 * * 1-5
每月1号、15号各构建一次,除12月:H H 1,15 1-11 *
*/5 * * * * (每5分钟检查一次源码变化) 0 2 * * * (每天2:00 必须build一次源码)
9、手动触发
留下您的脚步
最近评论