Skip to content

CSharpier v1.0.0 is slow when running in Azure Pipelines on Ubuntu #1584

@CruseCtrl

Description

@CruseCtrl

Environments:

  • CSharpier Version: 1.0.0
  • Running CSharpier via: Powershell in Azure Pipelines
  • Operating System: ubuntu-latest
  • .csharpierrc Settings: { "printWidth": 125 }
  • .editorconfig Settings: (too long to paste here)

When running csharpier via Nuke in Azure Pipelines, it hangs for a few minutes. This doesn't happen when running exactly the same command on my Windows laptop, but it does happen on the Pipeline. We've got vmImage: ubuntu-latest in our pipeline yaml.

More details

Here's a snippet of the output when running csharpier check . --log-level Debug:

17:17:35 [INF] > /opt/hostedtoolcache/dotnet/dotnet csharpier check . --log-level Debug
17:17:37 [DBG] Checking - ./.run/Run Frontend.run.xml
17:17:37 [DBG] Checking - ./.run/Run Backend.run.xml
17:17:37 [DBG] Checking - ./.run/Run Web App.run.xml
17:17:37 [DBG] Checking - ./Tests/WebTests/TestAuthHandler.cs
[...]
17:17:53 [DBG] Checking - ./Web/Features/Sounds/FileServices/IFileService.cs
17:17:53 [DBG] Checking - ./Web/Features/Sounds/FileServices/BlobStorageFileService.cs
17:17:53 [DBG] Checking - ./Web/Features/Sounds/FileServices/LocalFileService.cs
17:25:57 [DBG] Formatted 103 files in 501876ms.

And when running it locally I get

[...]
18:17:21 [DBG] Checking - .\Web\Features\Sounds\FileServices\BlobStorageFileService.cs
18:17:21 [DBG] Checking - .\Web\Features\Sounds\FileServices\IFileService.cs
18:17:21 [DBG] Checking - .\Web\Features\Sounds\FileServices\LocalFileService.cs
18:17:22 [DBG] Formatted 103 files in 4817ms.

So it's checking the same number of files, but my suspicion is that it's also scanning lots of ignored directories, possibly node_modules?

Our node modules are in ./Web/client-app. We've got a .gitignore file in that folder to ignore the node modules, as well as another .gitignore file at the root of the repository.

I've run git status on the pipeline and there are no uncommitted files, so everything should already be covered by our .gitignore files

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions