diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e0587525e..44f489346 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -124,8 +124,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ "macos-latest", "macos-13" ] + os: [ "macos-latest", "macos-13", "macos-14" ] python-version: ["3.9", "3.10", "3.11", "3.12"] + exclude: + - os: "macos-14" + python-version: "3.9" steps: - uses: actions/checkout@v4 @@ -154,7 +157,7 @@ jobs: run: | cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd .. - - name: Installation - macOS + - name: Installation - macOS (Brew) run: | # brew update # TODO: Should be the brew upgrade @@ -177,6 +180,9 @@ jobs: rm /usr/local/bin/python3.12-config || true brew install hdf5 c-blosc libomp + + - name: Installation (python) + run: | python -m pip install --upgrade pip wheel export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH export TA_LIBRARY_PATH=${HOME}/dependencies/lib diff --git a/tests/freqai/conftest.py b/tests/freqai/conftest.py index 81d72d92a..55f0296a3 100644 --- a/tests/freqai/conftest.py +++ b/tests/freqai/conftest.py @@ -25,10 +25,15 @@ def is_mac() -> bool: return "Darwin" in machine +def is_arm() -> bool: + machine = platform.machine() + return "arm" in machine or "aarch64" in machine + + @pytest.fixture(autouse=True) def patch_torch_initlogs(mocker) -> None: - if is_mac(): + if is_mac() and not is_arm(): # Mock torch import completely import sys import types diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index e3c286fcd..2e42f000e 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -1,5 +1,4 @@ import logging -import platform import shutil from pathlib import Path from unittest.mock import MagicMock @@ -15,13 +14,8 @@ from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import Trade from freqtrade.plugins.pairlistmanager import PairListManager from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re -from tests.freqai.conftest import (get_patched_freqai_strategy, is_mac, is_py12, make_rl_config, - mock_pytorch_mlp_model_training_parameters) - - -def is_arm() -> bool: - machine = platform.machine() - return "arm" in machine or "aarch64" in machine +from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, is_py12, + make_rl_config, mock_pytorch_mlp_model_training_parameters) def can_run_model(model: str) -> None: @@ -243,7 +237,7 @@ def test_extract_data_and_train_model_Classifiers(mocker, freqai_conf, model): def test_start_backtesting(mocker, freqai_conf, model, num_files, strat, caplog): can_run_model(model) test_tb = True - if is_mac(): + if is_mac() and not is_arm(): test_tb = False freqai_conf.get("freqai", {}).update({"save_backtest_models": True})