Skip to content

Bump actions/upload-pages-artifact from 3 to 5 (#133) #29

Bump actions/upload-pages-artifact from 3 to 5 (#133)

Bump actions/upload-pages-artifact from 3 to 5 (#133) #29

name: Build and Test
on:
push:
branches: [master, develop]
pull_request:
branches: [master, develop]
jobs:
cpp_standard:
name: C++ Standard Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Run before script
timeout-minutes: 10
run: |
mkdir -p cpp/build
cd cpp/build
cmake -DBUILD_PLO6=OFF .. ; make
- name: Run script
timeout-minutes: 30
run: |
cd cpp/build
./c_example
./cpp_example
./omaha_example
./plo4_example
./plo5_example
./evaluator5_standalone_example
./evaluator6_standalone_example
./evaluator7_standalone_example
./unit_tests
./unit_tests_evaluator5_standalone
./unit_tests_evaluator6_standalone
./unit_tests_evaluator7_standalone
# - name: Setup Zig
# uses: goto-bus-stop/setup-zig@v1.3.0
# with:
# version: master
# - name: zig build -Drelease-fast
# run: |
# cd cpp
# zig build -Drelease-fast
# - name: zig build -Ddynamic -Drelease-fast
# run: |
# cd cpp
# zig build -Ddynamic -Drelease-fast
# - name: zig build -Dtarget=x86_64-windows -Drelease-fast
# run: |
# cd cpp
# zig build -Dtarget=x86_64-windows -Drelease-fast
# - name: zig build -Domaha -Drelease-fast
# run: |
# cd cpp
# zig build -Domaha -Drelease-fast
# - name: zig build -Domaha -Ddynamic -Drelease-fast
# run: |
# cd cpp
# zig build -Domaha -Ddynamic -Drelease-fast
# - name: zig build -Domaha -Ddynamic -Dtarget=x86_64-windows -Drelease-fast
# run: |
# cd cpp
# zig build -Domaha -Ddynamic -Dtarget=x86_64-windows -Drelease-fast
# - name: zig build and run examples
# run: |
# cd cpp
# zig build examples
# zig-out/bin/c_example
# zig-out/bin/cpp_example
# zig-out/bin/omaha_example
cpp_benchmark:
name: C++ Benchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Run before script
timeout-minutes: 10
run: |
mkdir -p cpp/build
cd cpp/build
cmake -DBUILD_PLO5=ON -DBUILD_PLO6=OFF .. ; make
- name: Run script
run: |
cd cpp/build
./benchmark_phevaluator
python-test:
name: Python - Run unit tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Build the extension in place
run: |
cd python
pip install -e .
- name: Run tests
run: |
cd python
python -m unittest discover -v
python-check-install:
name: Python - Check package installation (without releasing)
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
cd python
pip install .
python-test-plo:
name: Python - Run PLO5 unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Build with PLO5 support
# The PLO lookup tables are large, so compiling them is slow and
# memory-hungry. They are opt-in via PHEVALUATOR_BUILD_PLO.
#
# Only PLO5 is exercised here: compiling the PLO6 table needs well over
# 12 GB of RAM, which risks OOM-killing the compiler on the 16 GB
# GitHub-hosted runners (gcc uses even more than clang). PLO6 is left to
# local/manual builds. The PLO6 tests are skipped when it is not built.
timeout-minutes: 30
run: |
cd python
PHEVALUATOR_BUILD_PLO=5 pip install -e .
- name: Run tests
run: |
cd python
python -m unittest discover -v