【发布时间】:2021-10-21 09:52:04
【问题描述】:
我目前在一家企业工作,并被要求使用 GitHub Actions 而不是 ADO/Azure Pipelines 或 Jenkins。
我的目标是创建一个自助服务模型,其中我们有一个基本的 CI/CD 框架,团队可以将其用作他们管道的起点。它具有所有的安全性、质量和治理,使开发人员的生活更轻松,并减少重复工作。因此,可重用的工作流是必须的,并且能够从构建代理/运行器/工作者启动容器是必须的。
让我阐述一下我对 GitHub Actions 情况的理解:
- Github Actions 可以做两件事:
- 启动容器
- 运行 JavaScript
- 在容器中运行容器被认为是个坏主意,事实上,对它的支持在不久的将来就会消失。
- GitHub Hosted Runners 在容器中运行。
- 直到 2021 年第三季度,Github 操作才支持可重用工作流
如果我的理解是正确的,那我就死定了:
- 除非我想编写 JavaScript,否则 GitHub 托管的 Actions 运行器在我的情况下基本上没用。
- 看来我回到了 VM 业务,可以自行托管运行程序,这样我就可以使用它来托管容器,而不是在 Docker 中运行 Docker
- 在 GitHub 开始实施可重用工作流之前,我为我的开发团队创建通用框架的能力受到了一定程度的削弱。 (我认为这是最大的假设,最有可能通过变通方法被推翻)
在我推回使用不同的 CI 工具之前,请有人告诉我我在这里缺少什么或哪些变通方法使这个可行。
【问题讨论】:
-
你在哪里找到关于
Reusable Workflows until Q3 of 2021的信息? -
您能否详细说明几件事 - 通过可重用的工作流程,您是指模板或具有指向具有可重用工作流程的某个集中式仓库的仓库链接吗? - 您可以在 github 工作流程中运行您想要的任何语言。例如去,节点,bash。这几乎完全取决于您在工作流程开始时安装的软件包。 - 您可以在工作流中构建/运行容器而不会出现问题。我一直在 ubuntu 上使用运行,它运行良好。如果您谈论的是在工作流中运行容器类型的问题,那么在托管运行器中会变得更加复杂。
-
@EdwardRomero,是的,“可重用工作流程”功能让您可以将整个工作流程称为操作。这意味着您不必复制/粘贴您将在每个管道中执行的一组步骤(例如扫描、构建、单元测试),您只需使用管道实例中的操作,传递您的参数,然后您'在做生意。我的目标是创建一个可重复使用的工作流程,它可以执行六次操作,其中许多操作都需要自己的容器。这意味着在 Github 托管的运行器上的容器中的容器。
标签: docker continuous-integration github-actions