Skip to content

Commit

Permalink
Make CircleCI builds use CMake instead of autotools.
Browse files Browse the repository at this point in the history
  • Loading branch information
insertinterestingnamehere committed Jan 8, 2025
1 parent cc8559e commit f0bcfea
Showing 1 changed file with 57 additions and 38 deletions.
95 changes: 57 additions & 38 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,19 @@ jobs:
- run: |
sudo apt-add-repository -y universe
sudo apt-get install -y gcc-14 g++-14
sudo apt-get install -y autoconf automake libtool
sudo apt-get install -y cmake
sudo apt-get install -y hwloc libhwloc-dev
- run: |
./autogen.sh
./configure --enable-picky --with-scheduler=<< parameters.scheduler >> --with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: timeout --foreground -k 10s 2m make check || ( cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
command: |
pushd build
CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 2m make test VERBOSE=1
popd
no_output_timeout: 180s

arm_clang:
Expand All @@ -47,18 +51,22 @@ jobs:
- run: |
sudo apt-add-repository -y universe
sudo apt-get install -y gcc-14 g++-14
sudo apt-get install -y autoconf automake libtool
sudo apt-get install -y cmake
sudo apt-get install -y hwloc libhwloc-dev
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
sudo apt-get install -y clang-19
- run: |
./autogen.sh
./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: timeout --foreground -k 10s 2m make check || ( cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
command: |
pushd build
CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 2m make test VERBOSE=1
popd
no_output_timeout: 180s

arm_sanitizers:
Expand All @@ -85,22 +93,23 @@ jobs:
- run: |
sudo apt-add-repository -y universe
sudo apt-get install -y gcc-14 g++-14
sudo apt-get install -y autoconf automake libtool
sudo apt-get install -y cmake
sudo apt-get install -y hwloc libhwloc-dev
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository -y 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main'
sudo apt-get install -y clang-19
- run: |
./autogen.sh
./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: |
export QTHREADS_DIR="$(pwd)"
pushd build
if [[ "<< parameters.sanitizer >>" == "thread" ]]; then cd test/basics; fi
timeout --foreground -k 10s 4m make check || ( cd $QTHREADS_DIR && cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
no_output_timeout: 120s
CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
no_output_timeout: 180s

arm_acfl:
parameters:
Expand All @@ -118,7 +127,7 @@ jobs:
- checkout
- run: |
sudo apt-get update -y
sudo apt-get install -y autoconf automake libtool
sudo apt-get install -y cmake
sudo apt-get install -y hwloc libhwloc-dev
wget -O acfl.tar https://developer.arm.com/-/media/Files/downloads/hpc/arm-compiler-for-linux/24-04/arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar
tar -vxf acfl.tar
Expand All @@ -130,14 +139,17 @@ jobs:
armclang -v
- run: |
export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin
./autogen.sh
./configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: |
export PATH=$PATH:/opt/arm/arm-linux-compiler-24.04_Ubuntu-22.04/bin
timeout --foreground -k 10s 4m make check || ( cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
pushd build
CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
popd
no_output_timeout: 180s

nvc:
Expand All @@ -163,20 +175,23 @@ jobs:
if [ ${MACHINE_TYPE} == 'aarch64' ]; then echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/arm64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list; fi
sudo apt-get update -y
sudo apt-get install -y nvhpc-24-9
sudo apt-get install -y autoconf automake libtool
sudo apt-get install -y cmake
sudo apt-get install -y hwloc libhwloc-dev
- run: |
export MACHINE_TYPE=`uname -m`
if [ ${MACHINE_TYPE} == 'x86_64' ]; then export PATH="$PATH:/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/compilers/bin"; fi
if [ ${MACHINE_TYPE} == 'aarch64' ]; then export PATH="$PATH:/opt/nvidia/hpc_sdk/Linux_aarch64/24.9/compilers/bin"; fi
nvc --version
./autogen.sh
./configure --enable-picky --disable-fastcontext --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: |
timeout --foreground -k 10s 4m make check || ( cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
pushd build
CTEST_OUTPUT_ON_FAILURE=1 timeout --foreground -k 10s 4m make test VERBOSE=1
popd
no_output_timeout: 180s

musl:
Expand All @@ -193,14 +208,18 @@ jobs:
steps:
- checkout
- run: |
apk add --no-cache --no-progress bash make musl-dev hwloc-dev libtool autoconf automake gcc g++
apk add --no-cache --no-progress bash make musl-dev hwloc-dev cmake gcc g++
- run: |
bash autogen.sh
bash configure --enable-picky --with-scheduler=<< parameters.scheduler >> -with-topology=<< parameters.topology >>
make -j2
make tests -j2
mkdir build
pushd build
cmake -DCMAKE_BUILD_TYPE=Release -DQTHREADS_SCHEDULER=<< parameters.scheduler >> -DQTHREADS_TOPOLOGY=<< parameters.topology >> ..
make -j2 VERBOSE=1
popd
- run:
command: make check || ( cat test/basics/test-suite.log && cat test/features/test-suite.log && cat test/stress/test-suite.log && exit 1 )
command: |
pushd build
CTEST_OUTPUT_ON_FAILURE=1 make test VERBOSE=1
popd
no_output_timeout: 180s

workflows:
Expand Down

0 comments on commit f0bcfea

Please sign in to comment.