Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experimenting With Cirrus CI #159

Merged
Merged
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9300a7f
Initial Mac M1 build in CirrusCI.
insertinterestingnamehere Oct 26, 2023
332cd46
Initial FreeBSD build in Cirrus CI.
insertinterestingnamehere Oct 26, 2023
cbf0f97
Add preliminary ARM on Linux Cirrus CI build.
insertinterestingnamehere Oct 26, 2023
c8dbff9
Test with MUSL libc in cirrus ci.
insertinterestingnamehere Oct 26, 2023
e56a888
Add arm/Linux/Clang config to cirrus CI.
insertinterestingnamehere Oct 26, 2023
6c55eb7
Remove musl builds entirely since they're unlikely to work anytime soon.
insertinterestingnamehere Oct 27, 2023
fcace66
Adjust time limits for cirrus builds.
insertinterestingnamehere Oct 27, 2023
ddffaa8
Test both schedulers in cirrus ci build configs.
insertinterestingnamehere Oct 27, 2023
526802d
Don't bother with topology detection in CI on OSX and FreeBSD.
insertinterestingnamehere Oct 27, 2023
c6f6f15
Add cirrus ci timeout to freebsd build since the timeout command isn'…
insertinterestingnamehere Oct 27, 2023
b30c356
Kill hung tests on freebsd since the timeout duration isn't being enf…
insertinterestingnamehere Oct 27, 2023
c784dde
Try using gtimeout in freebsd builds.
insertinterestingnamehere Oct 27, 2023
3df4fef
Disable testing with nemesis on freebsd since issue #162 is preventin…
insertinterestingnamehere Oct 27, 2023
70b7f55
Fix install of hwloc for arm/linux builds. Also expand that build mat…
insertinterestingnamehere Oct 27, 2023
9c8e406
More aggressive timeout enforcement for the ARM/Linux builds.
insertinterestingnamehere Oct 27, 2023
e466c1b
Re-enable freebsd build to see if the timeout builtin to the CI syste…
insertinterestingnamehere Oct 30, 2023
255306d
Add distrib builds to cirrus ci config.
insertinterestingnamehere Oct 31, 2023
1d50007
Add stronger timeout to OSX M1 builds.
insertinterestingnamehere Oct 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
osx_m1_task:
macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
timeout_in: 5m
matrix:
env:
QTHREADS_SCHEDULER: nemesis
env:
QTHREADS_SCHEDULER: sherwood
env:
QTHREADS_SCHEDULER: distrib
install_deps_script: |
brew install autoconf automake libtool coreutils # coreutils is to get gtimeout for CI and is not universally required by qthreads.
build_script: |
./autogen.sh
./configure --enable-picky --with-scheduler=$QTHREADS_SCHEDULER --with-topology=no
make -j$CIRRUS_CPU
test_script: |
gtimeout --foreground 3m make check

freebsd_task:
freebsd_instance:
image_family: freebsd-13-2
timeout_in: 5m
matrix:
env:
QTHREADS_SCHEDULER: nemesis
env:
QTHREADS_SCHEDULER: sherwood
env:
QTHREADS_SCHEDULER: distrib
install_deps_script: |
pkg install -y bash
pkg install -y llvm autoconf automake libtool
pkg install -y coreutils # to get gtimeout for CI. The built-in timeout sometimes fails to kill the process.
build_script: |
bash autogen.sh
bash configure --enable-picky --with-scheduler=$QTHREADS_SCHEDULER --with-topology=no
make -j$CIRRUS_CPU
test_script: |
gtimeout --foreground -k 10s 2m make check

arm_linux_task:
arm_container:
image: gcc:latest
timeout_in: 5m
matrix:
env:
QTHREADS_SCHEDULER: nemesis
QTHREADS_TOPOLOGY: no
env:
QTHREADS_SCHEDULER: nemesis
QTHREADS_TOPOLOGY: hwloc
env:
QTHREADS_SCHEDULER: sherwood
QTHREADS_TOPOLOGY: no
env:
QTHREADS_SCHEDULER: sherwood
QTHREADS_TOPOLOGY: hwloc
env:
QTHREADS_SCHEDULER: distrib
QTHREADS_TOPOLOGY: no
env:
QTHREADS_SCHEDULER: distrib
QTHREADS_TOPOLOGY: hwloc
install_deps_script: |
apt-get update -y
apt-get install -y autoconf automake libtool
apt-get install -y hwloc libhwloc-dev
build_script: |
./autogen.sh
./configure --enable-picky --with-scheduler=$QTHREADS_SCHEDULER --with-topology=$QTHREADS_TOPOLOGY
make -j$CIRRUS_CPU
test_script: |
timeout --foreground -k 10s 2m make check

arm_linux_clang_task:
arm_container:
image: gcc:latest
timeout_in: 5m
matrix:
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: nemesis
QTHREADS_TOPOLOGY: no
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: nemesis
QTHREADS_TOPOLOGY: hwloc
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: sherwood
QTHREADS_TOPOLOGY: no
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: sherwood
QTHREADS_TOPOLOGY: hwloc
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: distrib
QTHREADS_TOPOLOGY: no
env:
CC: clang
CXX: clang++
QTHREADS_SCHEDULER: distrib
QTHREADS_TOPOLOGY: hwloc
install_deps_script: |
apt-get update -y
apt-get install -y software-properties-common
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
apt-get install -y clang
apt-get install -y autoconf automake libtool
apt-get install -y hwloc libhwloc-dev
build_script: |
./autogen.sh
./configure --enable-picky --with-scheduler=$QTHREADS_SCHEDULER --with-topology=$QTHREADS_TOPOLOGY
make -j$CIRRUS_CPU
test_script: |
timeout --foreground -k 10s 2m make check

Loading