Adding caching to Azure Pipelines

Alex Mullans

Alex

For a long while, Azure Pipelines users have been asking to improve performance on the hosted build agents by adding caching for common scenarios like package restore. The issue came up in a recent popular Hacker News item, so we wanted to share an update.

Pipeline Caching is starting development now. You can see the design in this PR. Near the end of March, we’ll be releasing restore and save cache tasks that allow you to cache any file or set of files to a cache key of your choice. If you’re building some dependencies over and over or restoring a lot of packages, these tasks can add immediate time savings to your pipelines.

Continuing in Q2, we’ll improve those tasks after we see how you use them in your pipelines. We’ll also be enabling caching by default in the most popular ecosystems (think NuGet, pip, npm) as we learn more about the performance of those tools.

Please share your feedback on the PR; we’ll be reading and evolving the design as we go. Also feel free to get in touch with me and Mitch Denny, the feature owner for Pipeline Caching. We’re eager to hear about your ideas for using caching in your pipelines.

Alex Mullans
Alex Mullans

Senior Program Manager, Azure Artifacts

Follow Alex   

8 comments

  • Avatar
    Antonio De Almeida

    I am absolutely excited for this! Thank you Microsoft and the team for really just listening to the feedback from the community and making us feel valued!

    • Alex Mullans
      Alex Mullans

      We don’t have plans to bring this to Azure DevOps Server at the moment, since on-premises you have persistent agents that can ‘cache’ by virtue of not being brand new machines for each run.

  • Jos Krause
    Jos Krause

    @Alex is there any update or updated roadmap for this feature? 2 minute builds for something that builds locally in 8 secs is a bit…attrocious 🙂

  • Avatar
    Caspar Bang Jespersen

    Hi @Alex. Will caching also be available for Docker agents? A lot of time in building containers (significantly on Windows Containers) is time spent downloading and extracting base layers, that could easily be cached.

Leave a comment