Scale bundler install jobs with CPU count up to 8

The number of jobs should scale with the runner CPU count, up to a
point. The bottleneck becomes network / disk I/O at very large numbers,
and 8 seems like a reasonable maximum based on my experience at this
time.
This commit is contained in:
Thomas Breland
2025-10-27 12:32:05 +01:00
committed by Benoit Daloze
parent 4ff6f3611a
commit a96ff531da
2 changed files with 8 additions and 2 deletions
+4 -1
View File
@@ -1,4 +1,5 @@
const fs = require('fs')
const os = require('os')
const path = require('path')
const core = require('@actions/core')
const exec = require('@actions/exec')
@@ -193,8 +194,10 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
console.log(`Found cache for key: ${cachedKey}`)
}
// Number of jobs should scale with runner, up to a point
const jobs = Math.min(os.cpus().length, 8)
// Always run 'bundle install' to list the gems
await exec.exec('bundle', ['install', '--jobs', '4'])
await exec.exec('bundle', ['install', '--jobs', jobs])
// @actions/cache only allows to save for non-existing keys
if (!common.isExactCacheKeyMatch(key, cachedKey)) {
Generated Vendored
+4 -1
View File
@@ -13,6 +13,7 @@ __nccwpck_require__.r(__webpack_exports__);
/* harmony export */ installBundler: () => (/* binding */ installBundler)
/* harmony export */ });
const fs = __nccwpck_require__(9896)
const os = __nccwpck_require__(857)
const path = __nccwpck_require__(6928)
const core = __nccwpck_require__(7484)
const exec = __nccwpck_require__(5236)
@@ -207,8 +208,10 @@ async function bundleInstall(gemfile, lockFile, platform, engine, rubyVersion, b
console.log(`Found cache for key: ${cachedKey}`)
}
// Number of jobs should scale with runner, up to a point
const jobs = Math.min(os.cpus().length, 8)
// Always run 'bundle install' to list the gems
await exec.exec('bundle', ['install', '--jobs', '4'])
await exec.exec('bundle', ['install', '--jobs', jobs])
// @actions/cache only allows to save for non-existing keys
if (!common.isExactCacheKeyMatch(key, cachedKey)) {