diff --git a/bundler.js b/bundler.js index 8e30223ae..e0d117931 100644 --- a/bundler.js +++ b/bundler.js @@ -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.availableParallelism(), 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)) { diff --git a/dist/index.js b/dist/index.js index 89aebb79e..5ff32c19d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -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.availableParallelism(), 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)) {