Skip to content

Commit

Permalink
attempt to make CirrusCI job more efficient
Browse files Browse the repository at this point in the history
  • Loading branch information
arvidn committed Jul 1, 2024
1 parent ae20e11 commit 9aada93
Showing 1 changed file with 18 additions and 80 deletions.
98 changes: 18 additions & 80 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# since CirrusCI has limited compute resources for free open-source projects
# we only use it for its unique feature, FreeBSD images

freebsd_instance:
image_family: freebsd-14-0

task:
env:
CIRRUS_CLONE_DEPTH: 1
CIRRUS_CLONE_SUBMODULES: true
CIBW_BUILD_VERBOSITY: 3
CIBW_SKIP: pp* cp38-* # cp38-* has problem with x86_64 / arm64 confusion
CIBW_BUILD: cp39-* cp310-* cp311-* cp312-*
install_script: |
IGNORE_OSVERSION=yes pkg update
pkg install -U -y git boost-build boost-libs unzip wget openssl cmake ninja
pkg install -y boost-build boost-libs openssl cmake ninja py39-pip
echo "using clang ;" > ~/user-config.jam
submodules_script: |
git submodule update --init --recursive
build_cmake_script: |
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_CXX_STANDARD=14 -Dbuild_tests=ON -Dbuild_examples=ON -Dbuild_tools=ON -Dpython-bindings=OFF -G Ninja .
cmake --build . --parallel 2
cmake --build .
./test/test_primitives
tests_script: |
cd test
Expand All @@ -19,79 +25,11 @@ task:
cd test
b2 -l250 warnings-as-errors=on warnings=all crypto=openssl stage_enum_if stage_dependencies include=/usr/local/include library-path=/usr/local/lib
LD_LIBRARY_PATH=./dependencies ./enum_if
# it appears cibuildwheel does not support FreeBSD (nor CirrusCI)
# install_cibuildwheel_script:
# - python -m pip install cibuildwheel==2.16.5
# run_cibuildwheel_script:
# - cibuildwheel
# wheels_artifacts:
# path: "wheelhouse/*"

build_and_store_wheels: &BUILD_AND_STORE_WHEELS
env:
CIBW_BUILD_VERBOSITY: 3
CIBW_REPAIR_WHEEL_COMMAND_MACOS: >
delocate-listdeps {wheel} &&
delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
install_cibuildwheel_script:
- $PYTHON -m pip install cibuildwheel==2.16.5

run_cibuildwheel_script:
- cibuildwheel

wheels_artifacts:
path: "wheelhouse/*"

build_macos_arm64_task:
name: Build macOS arm64 wheels.

macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest

env:
CIRRUS_CLONE_SUBMODULES: true
CIBW_SKIP: pp* cp38-* # cp38-* has problem with x86_64 / arm64 confusion
CIBW_BUILD: cp39-* cp310-* cp311-* cp312-*
CIBW_ARCH: arm64
PATH: /opt/homebrew/bin:$PATH
PYTHON: python3.9

install_pre_requirements_script:
- brew install [email protected]

debug_script:
- echo $PATH
- ls -l /opt/homebrew/bin
- find /opt/homebrew -name '*openssl*' -ls

<<: *BUILD_AND_STORE_WHEELS

test_macos_arm64_task:
name: Test macOS arm64.

macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest

env:
CIRRUS_CLONE_SUBMODULES: true
PATH: /opt/homebrew/bin:$PATH
PYTHON: python3.9
OPENSSL_OPTS: >
openssl-lib=/opt/homebrew/opt/[email protected]/lib
openssl-include=/opt/homebrew/opt/[email protected]/include
install_pre_requirements_script:
- brew install [email protected]
- brew install boost-build boost [email protected]
- echo "using darwin ;" >>~/user-config.jam

debug_script:
- echo $PATH
- ls -l /opt/homebrew/bin
- find /opt/homebrew -name '*openssl*' -ls

test_script:
- cd test
- b2 crypto=built-in -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on deterministic-tests
- b2 $OPENSSL_OPTS crypto=openssl -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on deterministic-tests
- b2 $OPENSSL_OPTS deprecated-functions=off -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on deterministic-tests

test_flaky_script:
- cd test
- b2 crypto=built-in -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on
- b2 $OPENSSL_OPTS crypto=openssl -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on
- b2 $OPENSSL_OPTS deprecated-functions=off -l400 warnings-as-errors=on debug-iterators=on invariant-checks=full asserts=on

0 comments on commit 9aada93

Please sign in to comment.