我已将Jenkins构建作业设置为具有Jenkinsfile
的多分支管道项目。它会自动扫描git以获取分支以构建并将结果部署到IIS虚拟路径的子目录。这适用于前端代码。
但是,对于.Net项目,有必要将每个目录配置为IIS中的“应用程序”。
有没有办法让我的构建脚本自动创建“IIS应用程序”并为任何新发现的分支设置应用程序池?
答案 0 :(得分:0)
将以下内容添加到Jenkins文件中:
stage("Deploy web application") {
steps {
...
virtualPath = '/myapp/' + env.BRANCH_NAME
physicalPath = 'C:\myapp\\'+env.BRANCH_NAME
addIisApplication('appName', 'appPoolName', virtualPath, physicalPath)
}
}
def addIisApplication(appName, appPoolName, virtualPath, physicalPath) {
iisAppCmd("add app /site.name:" + appName + " /path:" + virtualPath +" /physicalpath:"+physicalPath)
iisAppCmd("set app "+appName + virtualPath+" /applicationpool:" + appPoolName)
}
def iisAppCmd(args) {
bat 'C:\\Windows\\System32\\inetsrv\\appcmd.exe ' + args + " & exit 0" // ignore already exists error
}
如果您需要在其他服务器上创建IIS应用程序,请通过SysInternals PsExec调用appcmd.exe
。
现在,只要您创建新功能分支并推送它,Jenkins就可以构建并将其部署到您的IIS服务器。