技术思绪摘录旅行笔记
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。

1、打开Jenkins,选择新建Item

image.png

2、填写项目名称,选择自由风格,点击确定

image.png

3、勾选This project is parameterized,开始设置参数

image.png

image.png

先看下这几种参数类型:常用的就几种,本文中用到的就

Choice Parameter:选择型参数

String Parameter:字符串参数

4、我们开始添加参数

image.png

这样以此类推,下面把参数都列举一下

分支名称-选择参数:

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

image.png

Repository URL:填你的git仓库地址

Credentials:添加一个能拉取操作你git仓库的账号

指定分支:${BRANCH_NAME},这里填写的变量

6、构建-增加构建步骤,选择Execute Windows Batch Command(执行windows bat命令)

image.png

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

image.png

8、自动构建,根据仓库的变化,自动构建。

image.png

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、手动触发

image.png


CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

站点统计

总文章数:275 总分类数:18 总评论数:88 总浏览数:156.42万

精选推荐

阅读排行

友情打赏

请打开您的微信,扫一扫