aboutsummaryrefslogtreecommitdiff
path: root/.github/actions/set-make-job-count/action.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/actions/set-make-job-count/action.yml')
-rw-r--r--.github/actions/set-make-job-count/action.yml22
1 files changed, 22 insertions, 0 deletions
diff --git a/.github/actions/set-make-job-count/action.yml b/.github/actions/set-make-job-count/action.yml
new file mode 100644
index 000000000..68779ef3f
--- /dev/null
+++ b/.github/actions/set-make-job-count/action.yml
@@ -0,0 +1,22 @@
+name: 'set-make-job-count'
+description: 'Set the MAKE_JOB_COUNT environment variable to a value suitable for the host runner'
+runs:
+ using: "composite"
+ steps:
+ # Each job runner requires 2.25 GiB (i.e. 1024 * 9/4 MiB) memory and
+ # a dedicated logical CPU core
+ - name: set-jobs-macOS
+ if: runner.os == 'macOS'
+ run: |
+ echo MAKE_JOB_COUNT=$(expr $(printf '%s\n%s' $(( $(sysctl -n hw.memsize) * 4 / (1073741824 * 9) )) $(sysctl -n hw.logicalcpu) | sort -n | head -n1) '|' 1) >> $GITHUB_ENV
+ shell: bash
+ - name: set-jobs-windows
+ if: runner.os == 'Windows'
+ run: |
+ echo MAKE_JOB_COUNT=$(expr $(printf '%s\n%s' $(( $(grep MemTotal: /proc/meminfo | cut -d: -f2 | cut -dk -f1) * 4 / (1048576 * 9) )) $(nproc) | sort -n | head -n1) '|' 1) >> $GITHUB_ENV
+ shell: msys2 {0}
+ - name: set-jobs-linux
+ if: runner.os == 'Linux'
+ run: |
+ echo MAKE_JOB_COUNT=$(expr $(printf '%s\n%s' $(( $(grep MemTotal: /proc/meminfo | cut -d: -f2 | cut -dk -f1) * 4 / (1048576 * 9) )) $(nproc) | sort -n | head -n1) '|' 1) >> $GITHUB_ENV
+ shell: bash