Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VSTS中设置Node.js webjob的持续集成_Node.js_Azure Devops_Azure Web App Service_Azure Pipelines_Azure Pipelines Release Pipeline - Fatal编程技术网

如何在VSTS中设置Node.js webjob的持续集成

如何在VSTS中设置Node.js webjob的持续集成,node.js,azure-devops,azure-web-app-service,azure-pipelines,azure-pipelines-release-pipeline,Node.js,Azure Devops,Azure Web App Service,Azure Pipelines,Azure Pipelines Release Pipeline,我熟悉如何使用VST设置node.js web应用程序的持续集成 如何为node.js webjob设置持续集成。我已经找到了如何使用Visual Studio处理.NET项目的示例,但是找不到任何关于如何处理node.js webjob的文档。要构建node.js应用程序,您可以首先通过VSTS上的repo(或在github、bitbucket等其他网站上托管的远程repo)来管理代码,然后为node.js webjob创建生成定义。具体步骤如下: 1.通过VSTS repo(git或TFVC

我熟悉如何使用VST设置node.js web应用程序的持续集成


如何为node.js webjob设置持续集成。我已经找到了如何使用Visual Studio处理.NET项目的示例,但是找不到任何关于如何处理node.js webjob的文档。

要构建node.js应用程序,您可以首先通过VSTS上的repo(或在github、bitbucket等其他网站上托管的远程repo)来管理代码,然后为node.js webjob创建生成定义。具体步骤如下:

1.通过VSTS repo(git或TFVC)管理代码 您可以将node.js应用程序管理为当前使用的回购,也可以创建新的回购来管理node.js应用程序。创建一个新的git repo(我使用git repo作为示例,与TFVC类似),您可以参考

将node.js代码推送到VSTS repo。您可以直接使用VS(克隆repo->在本地repo->commit->push中复制代码)或git命令

2.创建CI生成 在构建选项卡->新建->使用Node.JS和Gulp(预览)模板(或者可以使用空模板,然后手动添加任务)->获取源步骤->指定代码存在的repo和分支->指定任务设置->添加其他任务(如果需要)->触发器选项卡->启用持续集成。

有关node.js应用程序CI构建的更多详细信息,请参考

3.在Azure webjobs中添加你的应用程序 在CI生成定义中,添加以下任务:

  • 复制文件任务:将要在Azure webjobs上运行的应用程序从
    $(System.DefaultWorkingDirectory)
    复制到
    $(Build.ArtifactStagingDirectory)

  • 归档文件任务:
    $(Build.artifactstagindirectory)
    中的文件创建zip文件(例如
    $(Build.artifactstagindirectory)/webjob.zip)

  • Azure应用程序服务部署任务:将您的zip文件(
    $(Build.artifactstagindirectory)/webjob.zip
    )部署到Azure


您还可以参考更多详细信息。

完成了以下操作:通过
Azure App Service Deploy
任务构建+部署nodejs webjob(FTP由于我们IT环境中的安全问题而停止)

这是一种快速而肮脏的方法,用于恢复我们的构建+发布过程,这是一种危险的方法,对任何其他方法都持开放态度,但是关于这个特定主题的文档(如初始问题中所述)是相当不明确的

在我的项目中,所有内容(run.js+package.json+依赖项位于根级别)

构建定义

  • 获取来源
  • powershell脚本内联(清理目标文件夹、创建目标文件夹、将根文件夹移动到webjob结构)
  • npm安装
    $(Build.BinariesDirectory)\app\u data\jobs\continuous\[webjobname]
    内(工作文件夹)

  • 归档任务
    $(Build.BinariesDirectory)

  • 发布工件
    $(Build.ArtifactStagingDirectory)
    (发布路径)

  • 发布定义:使用上述构建生成的工件zip文件部署经典应用程序服务

    正如我在问题中提到的,我知道如何使用VSTS CI发布Node.js web应用程序。我想知道如何专门为Node.js WebJobs执行此操作。你是说在Azure WebJobs中使用CI build运行Node.js应用程序吗?我想使用VSTS CI部署Azure WebJob。因此,我有WebJob的代码,我可以通过压缩代码并通过Azure门户在我的Web应用程序中的WebJobs下进行部署来手动部署它。我想自动执行该步骤。好的,我在回答中添加了将应用程序部署到Azure webjobs的步骤。@MSFT webjob.zip是否需要特定的结构来匹配连续作业?文档是完全面向C#(包括nuget)的。自从两年前我们开始做ftp复制,但一些新的安全规则阻止了这一点:)
    Remove-Item -Path $(Build.BinariesDirectory)\app_data -Force -Confirm:$false -Recurse -ErrorAction:Ignore
    New-Item $(Build.BinariesDirectory)\app_data\jobs\continuous\ -ItemType Directory -Force
    Move-Item $(Build.SourcesDirectory)\[webjobname]\ $(Build.BinariesDirectory)\app_data\jobs\continuous\[webjobname] -Force