forked from optuna/optuna
-
Notifications
You must be signed in to change notification settings - Fork 0
138 lines (114 loc) · 3.85 KB
/
mac-tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# Run tests and integration tests on Mac, which are triggered by each master push.
# Currently, Python3.8 is only used as an environment.
# This is mainly for the sake of speed.
name: mac-tests
on:
push:
branches:
- master
pull_request: {}
schedule:
- cron: '0 23 * * SUN-THU'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.run_number || github.ref }}
cancel-in-progress: true
jobs:
tests-mac:
runs-on: macos-latest
# Scheduled Tests are disabled for forks.
if: (github.event_name == 'schedule' && github.repository == 'optuna/optuna') || (github.event_name != 'schedule')
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Setup cache
uses: actions/cache@v3
env:
cache-name: test
with:
path: ~/Library/Caches/pip
key: ${{ runner.os }}-3.8-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }}-v1
restore-keys: |
${{ runner.os }}-3.8-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }}
- name: Install
run: |
python -m pip install --upgrade pip
pip install --progress-bar off -U setuptools
# Install minimal dependencies and confirm that `import optuna` is successful.
pip install --progress-bar off .
python -c 'import optuna'
optuna --version
pip install --progress-bar off .[test]
pip install --progress-bar off .[optional]
- name: Output installed packages
run: |
pip freeze --all
- name: Output dependency tree
run: |
pip install pipdeptree
pipdeptree
- name: Scheduled tests
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
run: |
pytest tests -m "not integration"
- name: Tests
if: ${{ github.event_name != 'schedule' && github.event_name != 'workflow_dispatch' }}
run: |
pytest tests -m "not integration and not slow"
tests-integration-mac:
runs-on: macos-latest
# Scheduled Tests are disabled for forks.
if: (github.event_name == 'schedule' && github.repository == 'optuna/optuna') || (github.event_name != 'schedule')
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Setup cache
uses: actions/cache@v3
env:
cache-name: test-integration
with:
path: ~/Library/Caches/pip
key: ${{ runner.os }}-3.8-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }}-v1
restore-keys: |
${{ runner.os }}-3.8-${{ env.cache-name }}-${{ hashFiles('**/pyproject.toml') }}
- name: Setup mac environment
run: |
brew install libomp
brew install open-mpi
brew install openblas
- name: Install
run: |
python -m pip install --upgrade pip
# Install minimal dependencies and confirm that `import optuna` is successful.
pip install --progress-bar off .
python -c 'import optuna'
optuna --version
pip install --progress-bar off .[test]
pip install --progress-bar off .[optional]
pip install --progress-bar off .[integration]
- name: Output installed packages
run: |
pip freeze --all
- name: Output dependency tree
run: |
pip install pipdeptree
pipdeptree
- name: Tests
run: |
pytest tests -m "integration"
env:
OMP_NUM_THREADS: 1
- name: Tests MPI
run: |
export OMPI_MCA_rmaps_base_oversubscribe=yes
mpirun -n 2 pytest -- tests/integration_tests/test_pytorch_distributed.py
env:
OMP_NUM_THREADS: 1