Azure devops 如何将使用Docker映像的GitHub操作转换为Azure Pipelines自定义任务

Azure devops 如何将使用Docker映像的GitHub操作转换为Azure Pipelines自定义任务,azure-devops,Azure Devops,我正在尝试创建一个要在Azure Pipelines Marketplace上发布的自定义任务,以便人们可以在Azure Pipelines中使用我的安全工具。该任务需要大量附加软件,因此Docker已被用于打包 我同样为GitHub Actions创建了action 行动将- 使用自定义Docker映像(托管在Docker Hub上) 签出后装入代码 运行自定义入口点,将提供的参数传递给操作 我不知道如何在Azure管道中实现同样的效果。自定义任务的所有示例代码都是在TS/Node或Pow

我正在尝试创建一个要在Azure Pipelines Marketplace上发布的自定义任务,以便人们可以在Azure Pipelines中使用我的安全工具。该任务需要大量附加软件,因此Docker已被用于打包

我同样为GitHub Actions创建了action

行动将-

  • 使用自定义Docker映像(托管在Docker Hub上)
  • 签出后装入代码
  • 运行自定义入口点,将提供的参数传递给操作
我不知道如何在Azure管道中实现同样的效果。自定义任务的所有示例代码都是在TS/Node或PowerShell中编写的。 唯一的TS/Node.js没有向您展示如何下载docker映像并运行它

我能找到的唯一其他文档是关于如何从管道中构建Docker映像的。但我想下载并运行一个图像作为一项任务

图中清楚地显示了如何构造包,但没有说明如何做任何事情,只是让包传递参数

一种可能是克隆并定制它以运行我需要的Docker命令,但与GitHub操作中的简单性相比,这似乎相当复杂

如何将使用Docker映像的GitHub操作转换为Azure Pipelines自定义任务

恐怕您必须克隆
DockerV2
任务,并对其进行自定义以运行所需的Docker命令

其复杂性的原因在于它们的实现形式不同。

我们正在定制github操作并发布到Marketplace,定制github操作没有编译和打包源代码,只是引用了原始代码。换句话说,我们的自定义操作更像是提供一个链接,告诉编译器在哪里下载源代码、传递参数和重写源代码。因此,我们不需要下载github操作的源代码并对其进行定制

但是,Azure管道自定义任务是不同的。需要编译自定义任务以生成
.visx
文件,该文件需要源代码,并在重写后编译

此外,Azure devops提供了一个可重用的任务,因此我们可以将构建或发布管道中已经定义的任务序列封装到单个可重用任务中,该任务可以添加到构建或发布管道中,就像任何其他任务一样。您可以选择从封装的任务中提取参数作为配置变量,并提取其余的任务信息

希望这有帮助