You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/09/05 19:25:28 UTC

[incubator-nuttx-testing] branch master updated (cd8abf1 -> 0a6adc9)

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-testing.git.


    from cd8abf1  sim.dat: disable sim:sotest32 config since not work under macOS
     new 00a2de7  CI: Test enabling ccache for builds
     new 0a6adc9  Tweak CPU count logic for MacOS

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/build.yml | 34 +++++++++++++++++++++++-----
 cibuild.sh                  | 54 ++++++++++++++++++++++++++++++---------------
 docker/linux/Dockerfile     | 21 ++++++++++++++++++
 3 files changed, 86 insertions(+), 23 deletions(-)


[incubator-nuttx-testing] 01/02: CI: Test enabling ccache for builds

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-testing.git

commit 00a2de76aac79b587fae5cce79c86511ba8c979c
Author: Brennan Ashton <ba...@brennanashton.com>
AuthorDate: Thu Sep 3 18:14:39 2020 -0700

    CI: Test enabling ccache for builds
---
 .github/workflows/build.yml | 34 ++++++++++++++++++++++++-----
 cibuild.sh                  | 52 ++++++++++++++++++++++++++++++---------------
 docker/linux/Dockerfile     | 21 ++++++++++++++++++
 3 files changed, 85 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b931060..56af0b1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -20,6 +20,7 @@ jobs:
     runs-on: ubuntu-18.04
     env:
       DOCKER_BUILDKIT: 1
+      IMAGE_TAG: docker.pkg.github.com/${{ github.repository }}/nuttx-ci-linux
 
     strategy:
       matrix:
@@ -63,16 +64,27 @@ jobs:
         timeout_minutes: 10
         max_attempts: 3
         retry_wait_seconds: 10
-        command: docker pull docker.pkg.github.com/apache/incubator-nuttx-testing/nuttx-ci-linux
+        command: docker pull $IMAGE_TAG
 
+    - name: Restore ccache
+      id: ccache
+      uses: actions/cache@v2
+      with:
+        path: ccache
+        key: ccache-${{ runner.os }}-${{matrix.boards}}-${{ github.run_id }}
+        restore-keys: ccache-${{ runner.os }}-${{matrix.boards}}-
     - name: Run builds
       uses: ./testing/.github/actions/ci-container
       env:
         BLOBDIR: /tools/blobs
       with:
         run: |
+          export CCACHE_DIR=`pwd`/ccache
           cd testing
-          ./cibuild.sh -x testlist/${{matrix.boards}}.dat
+          ./cibuild.sh -c -x testlist/${{matrix.boards}}.dat
+          ccache -s
+          ccache -M 400M
+          ccache -c
 
   macOS:
     runs-on: macos-10.15
@@ -107,16 +119,28 @@ jobs:
         repository: apache/incubator-nuttx-testing
         path: testing
 
-    - name: Restore cache
+    - name: Restore tools cache
       id: cache-tools
-      uses: actions/cache@v1
+      uses: actions/cache@v2
       env:
         cache-name: ${{ runner.os }}-cache-tools
       with:
         path: prebuilt
         key: ${{ runner.os }}-tools-${{ hashFiles('./testing/cibuild.sh') }}
 
+    - name: Restore ccache
+      id: ccache
+      uses: actions/cache@v2
+      with:
+        path: ccache
+        key: ccache-${{ runner.os }}-${{matrix.boards}}-${{ github.run_id }}
+        restore-keys: ccache-${{ runner.os }}-${{matrix.boards}}-
     - name: Run builds
       run: |
+        export CCACHE_DIR=`pwd`/ccache
         cd testing
-        ./cibuild.sh -i -x testlist/${{matrix.boards}}.dat
+        ./cibuild.sh -i -c -x testlist/${{matrix.boards}}.dat
+        ccache -s
+        ccache -M 400M
+        ccache -c
+
diff --git a/cibuild.sh b/cibuild.sh
index c68422e..b737cb6 100755
--- a/cibuild.sh
+++ b/cibuild.sh
@@ -24,6 +24,7 @@
 #  - wget
 
 set -e
+set -o xtrace
 
 WD=$(cd $(dirname $0) && pwd)
 WORKSPACE=$(cd $WD/.. && pwd -P)
@@ -36,12 +37,12 @@ EXTRA_PATH=
 
 case $os in
   Darwin)
-    install="python-tools u-boot-tools discoteq-flock elf-toolchain gen-romfs kconfig-frontends bloaty arm-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain avr-gcc-toolchain"
+    install="python-tools u-boot-tools discoteq-flock elf-toolchain gen-romfs kconfig-frontends arm-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain avr-gcc-toolchain c-cache"
     mkdir -p ${prebuilt}/homebrew
     export HOMEBREW_CACHE=${prebuilt}/homebrew
     ;;
   Linux)
-    install="python-tools gen-romfs gperf kconfig-frontends bloaty arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain c-cache"
+    install="python-tools gen-romfs gperf kconfig-frontends arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain c-cache"
     ;;
 esac
 
@@ -289,21 +290,39 @@ function rx-gcc-toolchain {
 function c-cache {
   add_path $prebuilt/ccache/bin
 
-  if [ ! -f "$prebuilt/ccache/bin/ccache" ]; then
-    cd $prebuilt;
-    wget --quiet https://github.com/ccache/ccache/releases/download/v3.7.7/ccache-3.7.7.tar.gz
-    tar zxf ccache-3.7.7.tar.gz
-    cd ccache-3.7.7; ./configure --prefix=$prebuilt/ccache; make; make install
-    cd $prebuilt; rm -rf ccache-3.7.7; rm ccache-3.7.7.tar.gz
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/gcc
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/g++
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/arm-none-eabi-gcc
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/arm-none-eabi-g++
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/p32-gcc
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/riscv64-unknown-elf-gcc
-    ln -sf $prebuilt/ccache/bin/ccache $prebuilt/ccache/bin/riscv64-unknown-elf-g++
+  if ! type ccache > /dev/null; then
+    case $os in
+      Darwin)
+        brew install ccache
+        ;;
+      Linux)
+        cd $prebuilt;
+        wget https://github.com/ccache/ccache/releases/download/v3.7.7/ccache-3.7.7.tar.gz
+        tar zxf ccache-3.7.7.tar.gz
+        cd ccache-3.7.7; ./configure --prefix=$prebuilt/ccache; make; make install
+        cd $prebuilt; rm -rf ccache-3.7.7; rm ccache-3.7.7.tar.gz
+        ;;
+    esac
   fi
+
   ccache --version
+  mkdir -p $prebuilt/ccache/bin/
+  ln -sf `which ccache` $prebuilt/ccache/bin/x86_64-elf-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/x86_64-elf-g++
+  ln -sf `which ccache` $prebuilt/ccache/bin/cc
+  ln -sf `which ccache` $prebuilt/ccache/bin/c++
+  ln -sf `which ccache` $prebuilt/ccache/bin/clang
+  ln -sf `which ccache` $prebuilt/ccache/bin/clang++
+  ln -sf `which ccache` $prebuilt/ccache/bin/gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/g++
+  ln -sf `which ccache` $prebuilt/ccache/bin/arm-none-eabi-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/arm-none-eabi-g++
+  ln -sf `which ccache` $prebuilt/ccache/bin/p32-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/riscv64-unknown-elf-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/riscv64-unknown-elf-g++
+  ln -sf `which ccache` $prebuilt/ccache/bin/xtensa-esp32-elf-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/avr-gcc
+  ln -sf `which ccache` $prebuilt/ccache/bin/avr-g++
 }
 
 function usage {
@@ -324,8 +343,7 @@ function usage {
 
 function enable_ccache {
   export USE_CCACHE=1;
-  export CCACHE_DIR=$prebuilt/ccache/.ccache;
-  ccache -c
+  ccache -z
   ccache -M 5G;
   ccache -s
 }
diff --git a/docker/linux/Dockerfile b/docker/linux/Dockerfile
index 956b956..b33a92b 100644
--- a/docker/linux/Dockerfile
+++ b/docker/linux/Dockerfile
@@ -209,6 +209,7 @@ RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends \
   unzip \
   python3 \
   python3-pip \
+  ccache \
   && rm -rf /var/lib/apt/lists/*
 
 
@@ -257,4 +258,24 @@ RUN pip3 install esptool
 COPY --from=nuttx-toolchain-renesas /tools/renesas-toolchain/rx-elf-gcc/ renesas-toolchain/rx-elf-gcc/
 ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
 
+# Configure ccache
+RUN mkdir -p /tools/ccache/bin && \
+  ln -sf `which ccache` /tools/ccache/bin/cc && \
+  ln -sf `which ccache` /tools/ccache/bin/c++ && \
+  ln -sf `which ccache` /tools/ccache/bin/clang && \
+  ln -sf `which ccache` /tools/ccache/bin/clang++ && \
+  ln -sf `which ccache` /tools/ccache/bin/gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/g++ && \
+  ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/arm-none-eabi-g++ && \
+  ln -sf `which ccache` /tools/ccache/bin/p32-gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/riscv64-unknown-elf-g++ && \
+  ln -sf `which ccache` /tools/ccache/bin/xtensa-esp32-elf-gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/xtensa-esp32-elf-g++ && \
+  ln -sf `which ccache` /tools/ccache/bin/avr-gcc && \
+  ln -sf `which ccache` /tools/ccache/bin/avr-g++ && \
+  ln -sf `which ccache` /tools/ccache/bin/rx-elf-gcc
+ENV PATH="/tools/ccache/bin:$PATH"
+
 CMD [ "/bin/bash" ]


[incubator-nuttx-testing] 02/02: Tweak CPU count logic for MacOS

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-testing.git

commit 0a6adc9f06a145efd7b679204bd67b082ab57f42
Author: Brennan Ashton <ba...@brennanashton.com>
AuthorDate: Fri Sep 4 13:02:31 2020 -0700

    Tweak CPU count logic for MacOS
---
 cibuild.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cibuild.sh b/cibuild.sh
index b737cb6..062a03b 100755
--- a/cibuild.sh
+++ b/cibuild.sh
@@ -383,7 +383,7 @@ function run_builds {
 
   case $os in
     Darwin)
-      ncpus=$(sysctl -n machdep.cpu.thread_count)
+      ncpus=$(sysctl -n hw.ncpu)
       ;;
     Linux)
       ncpus=`grep -c ^processor /proc/cpuinfo`