我想知道是否有人已经找到了以下问题的正确解决方案...我们有一个 Hugo 静态网站,其代码驻留在 git 存储库中。对网站进行更改时,我们创建一个拉取请求,该请求启动构建,然后将构建中的代码部署到暂存环境(链接到 CDN 的 Azure 存储帐户)。
这工作正常,但有一个主要限制:临时帐户始终仅反映最新创建的拉取请求。因此,当两个人正在进行更改时,最后更新的 PR 会部署到临时帐户,因为它将覆盖其他功能分支中所做的更改。
当然,这本身并不一定是由 Hugo 或 Azure 或 git 引起的。但它确实需要一个适合这种特定场景的解决方案。我考虑的一件事是将包含功能分支名称的另一级子文件夹部署到存储帐户上。但我不确定如何将其放入指定 $web 容器的 config.toml 中。也许雨果对这种情况有一些技巧,但我还没有找到。所以欢迎任何对此有好的想法。
我已经使用 GitHub Actions 为我的个人网站完成了此操作。我有工作流程使用不同的基本 URL 构建网站,例如:
hugo --baseURL https://demo.bbaovanc.com/pull_request/[ID]
其中
[ID]
是拉取请求编号,由 ${{ github.event.number }}
变量定义,该变量在 GitHub Actions 中工作。然后我将其上传到服务器的正确目录下,以便可以通过该 URL 访问它。我还有一个不同的工作流程,当拉取请求关闭或合并时,它会自动删除预览。
希望这会有所帮助,尽管我不知道如果您使用其他东西(Azure?)而不是 GitHub Actions 来构建网站,如何获取拉取请求编号(或功能分支名称)。
我即将处理同样的问题。
我的目标是拥有两个公共版本的hugo 网站。
Site1 - DEV - GHPages 版本...类似于 kjkjdf.github.io/dev-yadada
站点 2 - PROD - 托管在 AWS CDN... www.jljdsflkjsd.com
我的想法是:
拥有多家分店
掌握
开发亚达达
www.jljdsflkjsd.com
当然,在开发时也有特色分支
问题出在baseURL上 master分支和所有功能分支都使用localhost的baseURL进行本地开发。
部署到 GHpages 和 PROD 是问题所在。 我正在研究一种方法来更改 GH 操作中的 baseURL,该操作基于获得推送的分支。 因此,要启动通往 GHPages 的 CICD 管道,我将推送到 GHPages 分支...与 PROD 相同。 GHAction 使用分支的名称来更改hugo.toml 文件中的BaseURL。
我的问题是: 任何人都可以提出一些建议或改进。也许在我进一步推进之前给我一些想法。 我喜欢
hugo --baseURL https://demo.bbaovanc.com/pull_request/[ID]
就是上面提到的。 还有其他想法吗? 干杯