如何在vsts发布管道中使用python脚本任务

时间:2019-01-27 13:43:19

标签: python azure azure-devops

我是CI和CD领域的新手。我正在使用VSTS管道来自动化我的构建和发布过程。 这个问题是关于发布管道的。我将构建部署部署到AWS VM。我创建了一个Deployment组,并在VM中运行脚本以在AWS VM上生成Deployment Agent。 这很好,并且我能够成功部署。 成功部署后,我想在python中运行一些自动化脚本。 我尝试使用 Python Script Task 。设置之一是Python Interpretor。帮助信息说:  “要使用的Python解释器的绝对路径。如果未指定,任务将在PATH中使用解释器。 运行“使用Python版本”任务,将Python版本添加到PATH。”

所以, 我尝试使用Python版本任务,并指定了我通常用来运行脚本的python版本。任务提及的前提条件 “安装了并行版本的Python的Microsoft托管代理,或者配置了Agent.ToolsDirectory的自托管代理(请参阅问题与解答)。” 引用Python Version task documentation

我不确定如何以及在何处设置Agent.ToolsDirectory或如何在部署到AWS VM的发布管道上使用Microsoft托管代理。为此,我找不到任何分步示例。谁能在明确的步骤中帮助我,如何在我的方案中运行python脚本?

1 个答案:

答案 0 :(得分:0)

最简单的方法就是按照您的Yaml定义进行操作:

- script: python xxx

这将运行python并将参数传递给它,您可以使用python2或python3(托管代理上安装的默认版本)。实现此目的(更可靠)的另一种方法是在托管代理内部使用容器。这样,您可以显式指定python版本,并确保获得指定的内容。例如:

资源:   容器:   -容器:my_container#可以是任何东西     图片:python:3.6-jessie#只是一个例子

工作:   -职位:job_name     容器:my_container#必须是资源中的容器名称     池:       vmImage:“ Ubuntu-16.04”     脚步:     -结帐:自我       fetchDepth:1       干净:真实     -脚本:python xxx

这将启动python:3.6-jessie容器,将代码安装在容器中,并在存储库的根目录中运行python命令。阅读:

https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azdevops&tabs=schema&viewFallbackFrom=vsts#job
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/container-phases?view=azdevops&tabs=yaml&viewFallbackFrom=vsts

如果您使用的是自己的代理-只需在其上安装python并确保其位于路径中,因此当您在控制台中键入python时,它应该可以工作(您必须使用脚本任务在这种情况下)。如果要使用python任务,请遵循以下文章:

https://github.com/Microsoft/azure-pipelines-tool-lib/blob/master/docs/overview.md#tool-cache
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/use-python-version?view=azdevops