我正在尝试创建一个Jenkins管道或一组itens来帮助我为我的项目创建一个自定义CI / CD,现在我被困在部署部分,我想部署在我的jenkins运行的同一台服务器上(Windows Server / IIS)。我还想知道如何部署到另一台服务器(Windows Server / IIS),第二个将是我的生产环境。
我已经设法使用Jenkins的两种方法克隆,构建和存档:
这是我的管道脚本
node {
stage('git clone') {
// Get some code from a GitHub repository
git 'my-git-url'
}
stage('npm install') {
bat label: 'npm install',
script: '''cd app
npm install'''
}
stage('gulp install') {
bat label: 'gulp install',
script: '''cd app
npm i gulp'''
}
stage('gulp production') {
bat label: 'gulp production',
script: '''cd app
gulp production'''
}
stage('create artifact') {
archiveArtifacts artifacts: 'app/dist/**',
onlyIfSuccessful: true
}
}
Execute shell
构建步骤和Archive the artifacts
构建后操作构建并存档工件。如何使用此方法部署工件?在这种情况下,我试图触发第二个自由式项目来执行部署。根据你的问题:“我想部署在我的jenkins运行的同一台服务器上(Windows Server / IIS)”..并且我会建议一些方法。
建议不要将Windows用作生产环境的操作系统。 Linux是唯一且最好的选择。
我不建议使用IIS来部署静态资产。你需要更轻便和可扩展的东西。你可以使用:
在IIS上部署静态资产只是将文件复制并粘贴到某个文件夹上,并将IIS配置指向该文件夹:
在构建命令之后,您只需要复制构建结果(css.js.html.etc)并粘贴到某个文件夹,例如c:// webapps / my-app(在IIS中预先配置)。
您可以使用自由样式项目或管道脚本(如https://stackoverflow.com/a/53159387/3957754)中的简单shell执行来执行此操作
您可以使用此方法在运行jenkins的同一服务器上部署静态资产。
Microsoft有一个名为MSDeploy的工具。基本上是一个命令行工具,用于在远程IIS上部署应用程序:
msdeploy.exe -verb:sync -source:contentPath="" -dest:contentPath=""
更多细节在这里:
注意:You can't run MS deploy commands that talk to the MSDeploy service on the same machine
Jenkins代理是一个在远程服务器上运行的应用程序,而不是jenkins主节点运行的地方。
您的主jenkins可以在远程或localhost IIS中使用代理,并使用复制和粘贴方法执行jenkins作业。