aboutsummaryrefslogtreecommitdiff
path: root/.github/actions/set-make-job-count/action.yml
blob: 68779ef3fc9649780fa9b17949ee9f167166020b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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