Every Second Counts: Shaving Off 33% of Build Times on GitHub Workflow

  •   2 minutes read
Discover how a switch from ‘npm’ to ‘pnpm’ in the deployment pipeline for GitHub led to a significant reduction in build time, enhancing productivity and efficiency by a third.

The Original Workflow

The original workflow, which can be found here, was based on the ‘npm’ package manager. The total runtime for this workflow was approximately 80 seconds, with the dependency installation process taking up about 45 seconds.

The New Workflow

The new workflow, available here, has switched to the ‘pnpm’ package manager. This change has significantly reduced both the total runtime and the time taken for dependency installation. The total runtime is around 50 seconds, while the dependency installation process takes just 10 seconds.

Both workflows utilize caching, which helps to speed up the build process by storing and reusing certain data instead of recreating it each time.

The Impact of the Change

The switch from ‘npm’ to ‘pnpm’ has resulted in around a 30-second reduction in build time for each deployment. This might seem like a little, but the time savings can quickly add up when you consider the frequency of deployments in a typical development cycle.

Moreover, the reduction in time taken for dependency installation—from 45 seconds to just 10—means that developers can iterate faster, making changes and seeing their effects more quickly. This can lead to a more efficient development process and a better end product.

To better illustrate the changes, here’s a comparative table of the steps in the old (npm) and new (pnpm) workflows. Data are from run with the cache, which demonstrates the same impact and savings.

StepOld WorkflowNew Workflow
Set up job2s3s
Checkout 🔄1s1s
Setup PNPM 📦1s
Setup Node.js 🟢4s
Cache dependencies 🗄️0s0s
Install dependencies ⬇️47s8s
Build project 🔨10s8s
Inspect build output 🔍0s
Setup Pages ⚙️0s
Upload artifact 📤0s
Deploy to GitHub Pages 🚀2s5s
Post Cache dependencies 🗄️5s4s
Post Setup Node.js 🟢1s
Post Setup PNPM 📦0s
Post Checkout 🔄0s0s
Complete job0s0s
Total67s35s

As you can see, despite the increase in the number of steps in the new workflow, the overall efficiency has improved, proving that it’s not always about the number of steps but their effectiveness and efficiency.

Conclusion

This case study demonstrates the potential benefits of continually reviewing and optimizing your deployment pipelines. Like switching package managers, base modification can lead to significant time savings. As developers, we should always look for ways to improve our processes and tools, and this example serves as a great reminder of the impact such improvements can have.