我的应用程序我需要能够在现有管道上进行一些更改,因此我希望能够在本地测试它,而无需一直提交我的代码以检查其功能。
你知道我该怎么做吗?我想做的是检查包含我的更改的管道是否会破坏我的构建过程,而无需实际进行远程构建和部署。
有一个选项可以使用 CodeBuild Local [1] 在本地运行构建,但是 CodeDeploy 或 CodePipeline 不存在这样的选项。
您也许可以用不同的方式解决问题。尝试禁用从"生成"到"部署"的转换,或在"部署"阶段的"部署"操作之前放置"手动审批"操作,以控制部署发生的时间。
裁判:
[1] https://docs.aws.amazon.com/codebuild/latest/userguide/use-codebuild-agent.html#use-codebuild-agent
这可能不是你想要的,但如果它对谷歌的人有帮助,你可以使用这个技巧。
确保您是唯一一个在存储库上工作的人,然后提交一次您的第一批更改,然后在测试时一遍又一遍地修改该提交。 当然,您需要强制推送它,但这允许您进行重复更改,而不会因大量实验性更改而污染提交历史记录,CodeBuild 将尽职尽责地正常构建每个修改后的提交。
只需进行更改,添加它们,就好像您要进行新提交一样,然后改为运行git commit --amend
。 您现在将无法推送,因为远程存储库中的最新提交与你自己的提交不同,但您可以强制推送以覆盖您现在已更改的远程提交。
通常,强制推动是不好的,因为它会导致很多问题,但这是它适合这项工作的工具之一,只要你小心。
您可以使用--amend
不断修改您的最新提交,一遍又一遍地强制推送它,CodeBuild 将在每次强制推送时重建它。
完成后,您可以使用最终--amend
清理提交,也可以使用类似git reset HEAD~1
的内容将其完全删除,执行最后一次强制推送以从远程存储库中删除提交,然后继续正常开发。
只要确保在你这样做时没有其他人在推送代码,否则你的强制推送将覆盖他们所有的提交 - 让每个人都等到你完成测试,然后让他们做一个git pull --rebase
,然后他们终于可以做一个正常的推送来分享他们在等待你时所做的提交。