带有构建时变量的 JavaScript 应用程序管道的正确流程是什么?

What is the Correct Flow for a JavaScript Application Pipeline with Buildtime Variables?

考虑以下前端 JavaScript 应用程序的开发流程:

虽然有无数种方法可以设计 development->staging->production 管道,但以上是相当标准的对吧?

鉴于此,为什么 Bitbucket 和 Azure 等管道供应商不允许在 build 步骤中使用环境相关变量?

与大多数 JavaScript 应用程序一样,我们的应用程序是专门为 运行 等环境而构建的。 developmentstagingproduction。例如,每个环境都有自己唯一定义的变量集; APP_URL 设置可访问应用程序的 URL。

环境变量是在应用程序的构建过程中专门读取的,即它们是 buildtime 变量,而不是 运行time变量。

这些提供程序不支持 build 步骤的不同环境变量是有原因的吗?这似乎是一件显而易见的事情,这让我觉得实际上,我们的整个管道流程都是不正确的,是我们做错了……有什么建议可以解决这个问题吗?理想情况下,不要在 xyz-pipelines.yml 中设置这些变量,因为这些变量的全部目的是让它们远离存储库...

在 DevOps 中,您应该在构建管道中获得一个工件,然后使用 Release 工作流程将该工件发布到环境中。

您可以尝试在发布管道中的 Release pipeline 中构建前端 JavaScript 应用程序,它可以从 Azure Pipelines、Jenkins 或 TeamCity 等持续集成系统中获取工件。您还可以使用 Git 或 TFVC 等版本控制系统来存储您的工件。更多详情请参考以下link:

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/artifacts?view=azure-devops#sources