Merge pull request #9922 from xmatthias/ci/native_m1
Ci - Run on native macos ARM runner
This commit is contained in:
@@ -124,8 +124,11 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ "macos-latest", "macos-13" ]
|
os: [ "macos-latest", "macos-13", "macos-14" ]
|
||||||
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
||||||
|
exclude:
|
||||||
|
- os: "macos-14"
|
||||||
|
python-version: "3.9"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -154,7 +157,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
|
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
|
||||||
|
|
||||||
- name: Installation - macOS
|
- name: Installation - macOS (Brew)
|
||||||
run: |
|
run: |
|
||||||
# brew update
|
# brew update
|
||||||
# TODO: Should be the brew upgrade
|
# TODO: Should be the brew upgrade
|
||||||
@@ -177,6 +180,9 @@ jobs:
|
|||||||
rm /usr/local/bin/python3.12-config || true
|
rm /usr/local/bin/python3.12-config || true
|
||||||
|
|
||||||
brew install hdf5 c-blosc libomp
|
brew install hdf5 c-blosc libomp
|
||||||
|
|
||||||
|
- name: Installation (python)
|
||||||
|
run: |
|
||||||
python -m pip install --upgrade pip wheel
|
python -m pip install --upgrade pip wheel
|
||||||
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
|
||||||
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
|
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
|
||||||
|
|||||||
@@ -25,10 +25,15 @@ def is_mac() -> bool:
|
|||||||
return "Darwin" in machine
|
return "Darwin" in machine
|
||||||
|
|
||||||
|
|
||||||
|
def is_arm() -> bool:
|
||||||
|
machine = platform.machine()
|
||||||
|
return "arm" in machine or "aarch64" in machine
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def patch_torch_initlogs(mocker) -> None:
|
def patch_torch_initlogs(mocker) -> None:
|
||||||
|
|
||||||
if is_mac():
|
if is_mac() and not is_arm():
|
||||||
# Mock torch import completely
|
# Mock torch import completely
|
||||||
import sys
|
import sys
|
||||||
import types
|
import types
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import logging
|
import logging
|
||||||
import platform
|
|
||||||
import shutil
|
import shutil
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
@@ -15,13 +14,8 @@ from freqtrade.optimize.backtesting import Backtesting
|
|||||||
from freqtrade.persistence import Trade
|
from freqtrade.persistence import Trade
|
||||||
from freqtrade.plugins.pairlistmanager import PairListManager
|
from freqtrade.plugins.pairlistmanager import PairListManager
|
||||||
from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re
|
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,
|
from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, is_py12,
|
||||||
mock_pytorch_mlp_model_training_parameters)
|
make_rl_config, mock_pytorch_mlp_model_training_parameters)
|
||||||
|
|
||||||
|
|
||||||
def is_arm() -> bool:
|
|
||||||
machine = platform.machine()
|
|
||||||
return "arm" in machine or "aarch64" in machine
|
|
||||||
|
|
||||||
|
|
||||||
def can_run_model(model: str) -> None:
|
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):
|
def test_start_backtesting(mocker, freqai_conf, model, num_files, strat, caplog):
|
||||||
can_run_model(model)
|
can_run_model(model)
|
||||||
test_tb = True
|
test_tb = True
|
||||||
if is_mac():
|
if is_mac() and not is_arm():
|
||||||
test_tb = False
|
test_tb = False
|
||||||
|
|
||||||
freqai_conf.get("freqai", {}).update({"save_backtest_models": True})
|
freqai_conf.get("freqai", {}).update({"save_backtest_models": True})
|
||||||
|
|||||||
Reference in New Issue
Block a user