Skip to content

Commit

Permalink
circleci: Detect core count
Browse files Browse the repository at this point in the history
Test Plan: Try `./validate`, CircleCI build; make sure core count
detection works in both cases.

Reviewers: alpmestan

Reviewed By: alpmestan

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: #14470

Differential Revision: https://phabricator.haskell.org/D4897
  • Loading branch information
bgamari committed Jul 6, 2018
1 parent 8c628ad commit de95bf4
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 27 deletions.
10 changes: 6 additions & 4 deletions .circleci/config.yml
Expand Up @@ -15,7 +15,9 @@ aliases:
name: submodules
command: .circleci/fetch-submodules.sh
- &buildenv
THREADS: 9
# ideally we would simply set THREADS here instead of re-detecting it every
# time we need it below. Unfortunately, there is no way to set an environment
# variable with the result of a shell script.
SKIP_PERF_TESTS: YES
VERBOSE: 2
- &boot
Expand Down Expand Up @@ -50,19 +52,19 @@ aliases:
- &make
run:
name: Build
command: "make -j$THREADS"
command: "make -j`mk/detect-cpu-count.sh`"
- &build_hadrian
run:
name: Build GHC using Hadrian
command: |
cabal update
hadrian/build.sh -j$THREADS
hadrian/build.sh -j`mk/detect-cpu-count.sh`
- &test
run:
name: Test
command: |
mkdir -p test-results
make test SKIP_PERF_TESTS=YES JUNIT_FILE=../../test-results/junit.xml
make test THREADS=`mk/detect-cpu-count.sh` SKIP_PERF_TESTS=YES JUNIT_FILE=../../test-results/junit.xml
- &store_test_results
store_test_results:
path: test-results
Expand Down
26 changes: 26 additions & 0 deletions mk/detect-cpu-count.sh
@@ -0,0 +1,26 @@
#!/bin/sh

detect_cpu_count () {
if [ "$CPUS" = "" ]; then
# Windows standard environment variable
CPUS="$NUMBER_OF_PROCESSORS"
fi

if [ "$CPUS" = "" ]; then
# Linux
CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
fi

if [ "$CPUS" = "" ]; then
# FreeBSD
CPUS=`getconf NPROCESSORS_ONLN 2>/dev/null`
fi

if [ "$CPUS" = "" ]; then
# nothing helped
CPUS="1"
fi
}

detect_cpu_count
echo "$CPUS"
24 changes: 1 addition & 23 deletions validate
Expand Up @@ -119,29 +119,7 @@ check_packages () {
fi
}

detect_cpu_count () {
if [ "$CPUS" = "" ]; then
# Windows standard environment variable
CPUS="$NUMBER_OF_PROCESSORS"
fi

if [ "$CPUS" = "" ]; then
# Linux
CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
fi

if [ "$CPUS" = "" ]; then
# FreeBSD
CPUS=`getconf NPROCESSORS_ONLN 2>/dev/null`
fi

if [ "$CPUS" = "" ]; then
# nothing helped
CPUS="1"
fi
}

detect_cpu_count
CPUS=`mk/detect-cpu-count.sh`

if ! [ -d testsuite ]
then
Expand Down

0 comments on commit de95bf4

Please sign in to comment.