Azure devops Azure DevOps管道的代码格式任务

Azure devops Azure DevOps管道的代码格式任务,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,TL;DR-作为构建过程的一部分,是否有用于格式化代码的Azure DevOps管道任务?我还没有找到一个,我真的觉得它很有用 我的团队使用免费的VisualStudio扩展来美化C格式代码。虽然该扩展工作良好,但依赖开发人员在Visual Studio中格式化自己的代码有几个限制: 开发人员经常忘记运行该工具。 在代码运行时启用保存时自动运行文件清理可能会让人感到沮丧,因为它会重新组织代码,这可能会打破人们的思路。 开发人员可以根据自己的喜好更改格式设置,而不是遵守团队的格式标准,这可能会导致

TL;DR-作为构建过程的一部分,是否有用于格式化代码的Azure DevOps管道任务?我还没有找到一个,我真的觉得它很有用

我的团队使用免费的VisualStudio扩展来美化C格式代码。虽然该扩展工作良好,但依赖开发人员在Visual Studio中格式化自己的代码有几个限制:

开发人员经常忘记运行该工具。 在代码运行时启用保存时自动运行文件清理可能会让人感到沮丧,因为它会重新组织代码,这可能会打破人们的思路。 开发人员可以根据自己的喜好更改格式设置,而不是遵守团队的格式标准,这可能会导致代码合并问题和格式战争。
我认为更好的解决方案是在Azure DevOps中有一个管道任务,在构建过程中运行类似Code Maid的工具。这将确保没有任何代码以丑陋的、未格式化的状态进入源代码管理,并确保所有代码的格式符合作为构建的一部分启用的任何标准。

您可以在命令行上运行本机命令,该命令是dotnet格式,将实现您想要的。你可以在你的管道中运行这个。它确实需要安装,因此可能会增加构建的开销

使用以下命令安装:

dotnet tool install -g dotnet-format
然后,要直接在当前文件中格式化当前项目或解决方案,请使用:

dotnet format
要仅修复代码样式分析器警告,还可以使用以下命令:

dotnet format --fix-style warn

可用命令的完整列表在项目中。

您可以在命令行上运行本机命令,该命令为dotnet格式,将实现您想要的功能。你可以在你的管道中运行这个。它确实需要安装,因此可能会增加构建的开销

使用以下命令安装:

dotnet tool install -g dotnet-format
然后,要直接在当前文件中格式化当前项目或解决方案,请使用:

dotnet format
要仅修复代码样式分析器警告,还可以使用以下命令:

dotnet format --fix-style warn

可用命令的完整列表在项目中。

在我看来,触发构建的提交应该是不可变的。如果你把一些东西放在格式化代码中,你将不得不向回购协议推送一个新的提交,以便真正合并更改。那么,您是否打算再次触发CI构建

我的建议可能是作为管道的一部分自动运行格式化工具。如果它发现有人在推到远程之前没有运行该工具,那么就让构建失败。将传递的构建作为合并请求的一个要求。如果不能通过正常流程完成工作,人们就会排队。您在管道中为其配置的设置将是标准设置,以便解决开发人员选择选项卡或空间的问题:


Code Maid可能不是最好的选择。我看到一个公开的github标签,它对命令行自动化不是很好。它与VisualStudio紧密耦合。另外,这可能会有点费劲,但我想您可能希望有人在完整的源代码上运行格式化,这样每个人都可以从绿色开始。

在我看来,触发构建的提交应该是不可变的。如果你把一些东西放在格式化代码中,你将不得不向回购协议推送一个新的提交,以便真正合并更改。那么,您是否打算再次触发CI构建

我的建议可能是作为管道的一部分自动运行格式化工具。如果它发现有人在推到远程之前没有运行该工具,那么就让构建失败。将传递的构建作为合并请求的一个要求。如果不能通过正常流程完成工作,人们就会排队。您在管道中为其配置的设置将是标准设置,以便解决开发人员选择选项卡或空间的问题:

Code Maid可能不是最好的选择。我看到一个公开的github标签,它对命令行自动化不是很好。它与VisualStudio紧密耦合。另外,这可能会有点大的工作量,但我想您可能希望有人在完整的源代码上运行格式化,这样每个人都可以从绿色开始

我认为一个更好的解决方案是在项目中设置管道任务 Azure DevOps作为构建的一部分运行了类似Code Maid的工具 过程这将确保没有任何代码进入源代码管理中 丑陋的、未格式化的状态,并将确保所有代码格式化为 作为构建的一部分启用的任何标准

Azure Devops没有这样的管道任务来在管道运行期间格式化文件。并且不建议在管道运行期间对git回购进行更改

正常情况是:

1.我们在Azure Devops中托管了git repo,有人正在本地与开发分支一起开发

2.某人 进行一些更改并提交更改修改代码或添加额外的源文件

3.将提交与远程repo同步,远程repo中的更改将触发相应的管道运行。CI检查代码是否正常,CD用于部署新更改

现在,如果您在管道过程中修改源文件,则除非禁用CI,否则将导致无休止的触发。相反,您可以使用为主分支设置分支策略来改进流程。因此,通过PR对master进行的任何更改都应得到审查人员的批准。特定的审阅者可以帮助检查代码格式

我认为一个更好的解决方案是在项目中设置管道任务 Azure DevOps作为构建的一部分运行了类似Code Maid的工具 过程这将确保没有任何代码进入源代码管理中 丑陋的、未格式化的状态,并将确保所有代码格式化为 作为构建的一部分启用的任何标准

Azure Devops没有这样的管道任务来在管道运行期间格式化文件。并且不建议在管道运行期间对git回购进行更改

正常情况是:

1.我们在Azure Devops中托管了git repo,有人正在本地与开发分支一起开发

2.某人做了一些更改并提交更改修改代码或添加额外的源文件

3.将提交与远程repo同步,远程repo中的更改将触发相应的管道运行。CI检查代码是否正常,CD用于部署新更改


现在,如果您在管道过程中修改源文件,则除非禁用CI,否则将导致无休止的触发。相反,您可以使用为主分支设置分支策略来改进流程。因此,通过PR对master进行的任何更改都应得到审查人员的批准。特定的审阅者可以帮助检查代码格式。

可以在Azure DevOps云服务器上安装自定义工具吗?除了运行任务,我不认为可以在构建服务器上安装自定义应用程序。是的,您可以使用管道中的步骤将它们加载到容器中。这是我在管道中使用的工具。dotnet命令行实用程序已加载。您是否只添加该工具,而不是整个二进制文件。是否可以在Azure DevOps云服务器上安装自定义工具?除了运行任务,我不认为可以在构建服务器上安装自定义应用程序。是的,您可以使用管道中的步骤将它们加载到容器中。这是我在管道中使用的工具。dotnet命令行实用程序已经加载了。你只需要添加工具,而不是整个二进制文件。我很确定我已经使用Resharper完成了这项工作。我越是考虑这一点,就越同意你的看法。也就是说,在构建时更改代码格式将需要一个新的Git提交,这是很奇怪的。在管道上设置某种类型的门,如果检测到格式化未运行,则该门会使管道失败,这将是理想的。我目前使用CodeMaid仅仅是因为它是免费的,我当前的客户不会为Resharper之类的东西支付许可证。如果你在让CodeMaid在管道上或在编码单元测试中运行时遇到问题,你可以查看StyleCop。相信它是开源的,并且与c配合得很好。我很确定我已经用Resharper做了这件事。我越想这个,我就越同意你的看法。也就是说,在构建时更改代码格式将需要一个新的Git提交,这是很奇怪的。在管道上设置某种类型的门,如果检测到格式化未运行,则该门会使管道失败,这将是理想的。我目前使用CodeMaid仅仅是因为它是免费的,我当前的客户不会为Resharper之类的东西支付许可证。如果你在让CodeMaid在管道上或在编码单元测试中运行时遇到问题,你可以查看StyleCop。相信它是开源的,并且与c很好地配合。