【问题标题】:How can you convert a GitHub action that uses Docker images into Azure Pipelines custom task如何将使用 Docker 映像的 GitHub 操作转换为 Azure Pipelines 自定义任务
【发布时间】:2020-09-04 21:30:45
【问题描述】:

我正在尝试创建要在 Azure Pipelines Marketplace 上发布的自定义任务,以便人们可以在 Azure Pipelines 中使用我的安全工具。这个任务需要很多额外的软件,所以一直用Docker来打包。

我同样为 GitHub Actions 创建了操作,https://github.com/tonybaloney/pycharm-security/blob/master/action.yml

动作将-

  • 使用自定义 Docker 映像(托管在 Docker Hub 上)
  • 结帐后安装代码
  • 运行自定义入口点,将提供的参数传递给操作

我看不到如何在 Azure Pipelines 中实现相同的目标。自定义任务的所有示例代码都是用 TS/Node 或 PowerShell 编写的。 唯一的 TS/Node.js example 没有向您展示如何下载 docker 映像并运行它。

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

Task SDK documentation 清楚地展示了如何构建包,但除了让它传递参数之外,没有展示如何做任何事情。

一种可能性是克隆 DockerV2 Task 并对其进行自定义以运行我需要的 Docker 命令,但这与 GitHub Actions 中的简单程度相比似乎相当复杂

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

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

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

    之所以复杂,是因为它们的实现形式不同。

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

    但是,Azure Pipelines 自定义任务有所不同。自定义任务需要编译生成.visx文件,需要源码,重写后编译。

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 2021-09-22
      • 2021-02-27
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多