如何使用Jenkins Pipeline在IIS服务器上自动托管Angular应用程序?

pkwftd7m  于 2023-05-28  发布在  Jenkins
关注(0)|答案(1)|浏览(139)

在虚拟机中部署angular应用程序,并借助Jenkins管道将其部署到IIS
我已经成功地建立和部署它在虚拟机,但在IIS服务器托管我需要通过Jenkins做它基本上要自动化在IIS服务器的托管部分,所以我怎么能做它的任何想法,我需要添加在批处理命令或Jenkins文件

wi3ka0sx

wi3ka0sx1#

设置Jenkins管道:
1.打开Jenkins并创建一个新的管道作业。配置必要的设置,如存储库URL和凭据。在管道配置中,选择“管道脚本”选项。
1.编写Jenkins管道脚本:在Jenkins管道脚本中,您需要定义部署过程的各个阶段。

pipeline {
  agent any

  stages {
    stage('Build') {
      steps {
        // Add the commands to build your Angular application
        sh 'npm install'
        sh 'ng build --prod'
      }
    }

    stage('Deploy to IIS') {
      steps {
        // Add the commands to deploy the build artifacts to IIS
        bat 'xcopy /s /y "dist\\*" "C:\\inetpub\\wwwroot"'
      }
    }

    stage('Create IIS Application') {
      steps {
        script {
          // Get the branch name from the environment variable
          def branchName = env.BRANCH_NAME

          // Generate the application name based on the branch name
          def appName = branchName.replaceAll("/", "-").toLowerCase()

          // Set the IIS application path
          def appPath = "Default Web Site/${appName}"

          // Set the application pool name
          def appPoolName = "MyAppPool"

          // Create the IIS application
          bat "appcmd add app /site.name:\"Default Web Site\" /path:\"/${appName}\" /physicalPath:\"C:\\inetpub\\wwwroot\\${appName}\""

          // Set the application pool for the newly created application
          bat "appcmd set app /app.name:\"Default Web Site/${appName}\" /applicationPool:\"${appPoolName}\""
        }
      }
    }
  }
}

您可以编辑构建阶段,不仅可以通过npm install安装node_module,还可以通过ng build --prod构建。但是添加一些其他自定义配置或命令,如运行测试,甚至添加新的测试阶段等。
如果IIS服务器的webroot位于不同的目录中,请在Deploy to IIS阶段调整xcopy命令中的路径。
将管道脚本保存在Jenkins作业配置中。运行Jenkins作业,它将执行定义的阶段来构建Angular应用程序并将其部署到IIS服务器。
大多数情况下,我在Angular项目中有一个jenkins文件。因此,如果我向master/dev branche提交了一些,它将自动从jenskinsfile运行管道作业。

相关问题