summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2018-07-06 10:57:55 -0400
committerBen Gamari <ben@smart-cactus.org>2018-07-06 14:08:37 -0400
commitde95bf40ee0af0e7da4cb6cc4e0ad33694234bb9 (patch)
tree13ee71ca22f5a3610900ad7ce49f9fa635e2c6b3
parent8c628ad9b9241dcf4ea087ca9efa5f0ca9632aa5 (diff)
downloadhaskell-de95bf40ee0af0e7da4cb6cc4e0ad33694234bb9.tar.gz
circleci: Detect core count
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
-rw-r--r--.circleci/config.yml10
-rwxr-xr-xmk/detect-cpu-count.sh26
-rwxr-xr-xvalidate24
3 files changed, 33 insertions, 27 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e52d38d587..298162efa6 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -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
@@ -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
diff --git a/mk/detect-cpu-count.sh b/mk/detect-cpu-count.sh
new file mode 100755
index 0000000000..abc47387d1
--- /dev/null
+++ b/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"
diff --git a/validate b/validate
index 0332e5b1ec..2f82b2800b 100755
--- a/validate
+++ b/validate
@@ -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