2017-05-25 58 views
0

我试图将ci/cd从github设置为azure函数 我在git“​​”中创建了一个Azure函数项目。在visual studio中使用github和azure函数项目进行连续部署2017 preview

我通过视觉工作室发布了它,它工作的很完美。

然后我把它连接到这里描述的github ci/cd “https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous-deployment#continuous-deployment-requirements”。

当按下与git我可以看到它需要我的代码和“部署”,但是当我看的功能我新的代码是不是有和日志显示以下信息

“找到解决方案“d :\ home \ site \ repository \ HeyArnold \ HeyArnold.sln'没有可部署的项目,而是部署文件。“

我花了一天多就这一点,我会很感激帮助在这个问题上

我能够用一个空的网站,并设置蔚蓝的门户产生相同的文件夹结构时使用的github上部署 这仍然没有解决我的问题,因为我要使用Azure的功能项目,但我认为值得一提的

回答

0

与Microsoft支持协商后我recevied是需要被放入的.sln文件夹,然后git的部署将工作

注意多变的线条 :: 1.恢复的NuGet包 :: 2两个文件。构建并发布 有了您的解决方案和项目实际名称

  • .deployment

    [config] command = deploy.cmd

  • 部署。在cmd

    @if “%SCM_TRACE_LEVEL%” NEQ “4” @回响

    :: ---------------------- :: KUDU部署脚本 ::版本:1.0.15 :: ----------------------

    ::先决条件 :: ---- ---------

    ::验证的node.js安装 其中节点2> NUL> NUL IF%ERRORLEVEL%NEQ 0( 回声缺少的node.js可执行文件,请求如果已安装,请安装node.js,确保它可以从当前环境中访问。 转到错误 )

    ::设置 :: -----

    SETLOCAL enabledelayedexpansion

    组工件=%〜DP0%.. \工件

    如果没有定义DEPLOYMENT_SOURCE( SET DEPLOYMENT_SOURCE =%〜DP0%。 )

    如果没有定义DEPLOYMENT_TARGET( SET DEPLOYMENT_TARGET =%ARTIFACTS%\ wwwroot的 )

    如果没有定义NEXT_MANIFEST_PATH( SET NEXT_MANIFEST_PATH =%ARTIFACTS%\清单

    如果没有定义PREVIOUS_MANIFEST_PATH( SET PREVIOUS_MANIFEST_PATH =%ARTIFACTS%\清单 ) )

    如果没有定义KUDU_SYNC_CMD( ::安装捻同步 回声安装捻同步 呼叫NPM安装kudusync -g --silent IF!ERRORLEVE升! NEQ 0转到错误

    ::本地只是运行 “kuduSync” 也将工作 SET KUDU_SYNC_CMD =%APPDATA%\故宫\ kuduSync.cmd )

    :::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::: ::部署 :: ---------- 回声处理函数使用自定义脚本进行应用程序部署。

    :: 1.恢复的NuGet包 电话:ExecuteCmd nuget.exe恢复 “%DEPLOYMENT_SOURCE%\ FunctionAppVS2017_3Preview.sln” -MSBuildPath“d:\ Program Files文件(x86)的\的MSBuild 15.3预览\的MSBuild \ 15.0 \ Bin“ IF!ERRORLEVEL! NEQ 0转到错误

    :: 2.构建和发布 电话:ExecuteCmd “d:\ Program Files文件(x86)的\的MSBuild 15.3预览\的MSBuild \ 15.0 \斌\ MSBuild.exe”“%DEPLOYMENT_SOURCE%FunctionApp1 \ FunctionApp1.csproj“/ p:DeployOnBuild = true/p:configuration = Release/p:publishurl =”%DEPLOYMENT_TEMP%“%SCM_BUILD_ARGS% IF!ERRORLEVEL! NEQ 0转到错误

    :: 3。KuduSync IF/I“%IN_PLACE_DEPLOYMENT%”NEQ“1”( 调用:ExecuteCmd“%KUDU_SYNC_CMD%”-v 50 -f“%DEPLOYMENT_TEMP%”-t“%DEPLOYMENT_TARGET%”-n“%NEXT_MANIFEST_PATH%”-p “%PREVIOUS_MANIFEST_PATH%” -i “git的; .hg; .deployment; deploy.cmd”! IF ERRORLEVEL NEQ 0转到错误 )

    :::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::: 转到结束

    ::执行命令程序,将回声出当错误 :ExecuteCmd SETLOCAL 设置CMD =%* 呼叫%CMD% 如果 “%ERRORLEVEL%” NEQ “0” 回波失败EXITCODE =%ERRORLEVEL%,命令=%CMD% 出口/ B%ERRORLEVEL%

    :错误 endlocal echo网站部署期间发生错误。 呼叫:exitSetErrorLevel 呼叫:exitFromFunction 2> NUL

    :exitSetErrorLevel 出口/ B 1

    :exitFromFunction ()

    :端 ENDLOCAL 回声成功完成。

2

退房<functionappname>.scm.azurewebsites.net/dev看到哪些文件实际上是部署到wwwroot文件夹。

我看了一下你的github项目,我注意到了一些事情:如果你使用.cs文件,你应该创建一个precompiled function,你可以直接从VS部署。

但是,如果您使用的是.csx文件,并且希望能够从函数门户中编辑代码,那么您拥有的结构是正确的 - 只需删除解决方案和csproj文件,因为我相信它们会使部署基础设施

+0

马特感谢您的回答 它上传整个资源库到网站。 我希望能够在Visual Studio提交代码并自动部署到我的功能 –

0

我使用VSTS而不是GitHub,但您仍可能会发现此链接here的使用。

在VS2017预览版中使用Azure函数的工具扩展以及此问题中描述的构建步骤我已经能够通过Azure函数项目获取此CI管道。 Josh Carlisle详细说明了如何在他的blog上启动并运行这些步骤。

相关问题