CI: Refine the build matrix scripts more.
authorDenis Ovsienko <denis@ovsienko.info>
Fri, 19 Mar 2021 12:39:31 +0000 (12:39 +0000)
committerDenis Ovsienko <denis@ovsienko.info>
Fri, 19 Mar 2021 13:17:58 +0000 (13:17 +0000)
Fix skipping GCC on macOS in build_matrix.sh to make it work
consistently in and outside of a CI environment. Remove the skipping
from the CI space. Print Makefile in a way that works reliably for all
repositories and both build systems. Require travis_fold() parameters to
be set.

.cirrus.yml
build.sh
build_matrix.sh

index 76d2f0ec8100885c020779387fb6b9af9d1d9846..6e7e188c39964c027899a097d9e7c82f13c4b570 100644 (file)
@@ -44,7 +44,6 @@ macos_task:
     image: big-sur-xcode
   env:
     MAKEFLAGS: '-j 12' # macOS VMs always run on 12 cores
-    MATRIX_CC: clang # GCC is a symlink to Clang in macOS
   script:
     - brew update >/dev/null
     - ./build_matrix.sh
index 774b5d52306814bdf3c28f1e7c887cb1e8d59360..2ebfd6a59eeb7db28e33e2d8c6f04bf7c6f55e6b 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -50,7 +50,7 @@ fi
 if [ "$TRAVIS" = true ]; then
     echo '$ cat Makefile [...]'
     travis_fold start cat_makefile
-    sed -n '1,/DO NOT DELETE THIS LINE -- mkdep uses it/p' < Makefile
+    sed '/^# DO NOT DELETE THIS LINE -- mkdep uses it.$/q' < Makefile
     travis_fold end cat_makefile
     echo '$ cat config.h'
     travis_fold start cat_config_h
index c81b95d47970fd9c68cbeda00eac45df95a612d7..2fa1dc2ac7f029ad1f90f8581f8e7f02e737ad58 100755 (executable)
@@ -22,8 +22,8 @@ fi
 COUNT=0
 
 travis_fold() {
-    local action="$1"
-    local name="$2"
+    local action=${1:?}
+    local name=${2:?}
     if [ "$TRAVIS" != true ]; then return; fi
     echo -ne "travis_fold:$action:$LABEL.script.$name\\r"
     sleep 1
@@ -39,8 +39,11 @@ echo_magenta() {
 touch .devel configure
 for CC in ${MATRIX_CC:-gcc clang}; do
     export CC
-    # Exclude gcc on OSX (it is just an alias for clang)
-    if [ "$CC" = gcc ] && [ "$TRAVIS_OS_NAME" = osx ]; then continue; fi
+    # Exclude gcc on macOS (it is just an alias for clang).
+    if [ "$CC" = gcc ] && [ "$(uname -s)" = Darwin ]; then
+        echo '(skipped)'
+        continue
+    fi
     COUNT=$((COUNT+1))
     echo_magenta "===== SETUP $COUNT: CC=$CC ====="
     # LABEL is needed to build the travis fold labels