Skip to content

Commit b7a1d44

Browse files
committed
TODO/WIP 🐛 Fix the kiwisolver build on macOS
TODO: - the error was - ref TODO-3122
1 parent ceed049 commit b7a1d44

File tree

2 files changed

+202
-183
lines changed

2 files changed

+202
-183
lines changed

.github/workflows/push.yml

Lines changed: 183 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -30,168 +30,169 @@ jobs:
3030
pip install tox>=2.0
3131
tox -e pep8
3232
33-
test:
34-
name: Pytest [Python ${{ matrix.python-version }} | ${{ matrix.os }}]
35-
needs: flake8
36-
runs-on: ${{ matrix.os }}
37-
strategy:
38-
matrix:
39-
python-version: ['3.8', '3.9', '3.10', '3.11']
40-
os: [ubuntu-latest, macOs-latest]
41-
steps:
42-
- name: Checkout python-for-android
43-
uses: actions/checkout@v4
44-
- name: Set up Python ${{ matrix.python-version }}
45-
uses: actions/setup-python@v5
46-
with:
47-
python-version: ${{ matrix.python-version }}
48-
- name: Tox tests
49-
run: |
50-
python -m pip install --upgrade pip
51-
pip install tox>=2.0
52-
make test
53-
- name: Coveralls
54-
uses: AndreMiras/coveralls-python-action@develop
55-
if: ${{ matrix.os == 'ubuntu-latest' }}
56-
with:
57-
parallel: true
58-
flag-name: run-${{ matrix.os }}-${{ matrix.python-version }}
33+
# TODO: disable to not waste CPU time during testing
34+
# test:
35+
# name: Pytest [Python ${{ matrix.python-version }} | ${{ matrix.os }}]
36+
# needs: flake8
37+
# runs-on: ${{ matrix.os }}
38+
# strategy:
39+
# matrix:
40+
# python-version: ['3.8', '3.9', '3.10', '3.11']
41+
# os: [ubuntu-latest, macOs-latest]
42+
# steps:
43+
# - name: Checkout python-for-android
44+
# uses: actions/checkout@v4
45+
# - name: Set up Python ${{ matrix.python-version }}
46+
# uses: actions/setup-python@v5
47+
# with:
48+
# python-version: ${{ matrix.python-version }}
49+
# - name: Tox tests
50+
# run: |
51+
# python -m pip install --upgrade pip
52+
# pip install tox>=2.0
53+
# make test
54+
# - name: Coveralls
55+
# uses: AndreMiras/coveralls-python-action@develop
56+
# if: ${{ matrix.os == 'ubuntu-latest' }}
57+
# with:
58+
# parallel: true
59+
# flag-name: run-${{ matrix.os }}-${{ matrix.python-version }}
5960

60-
ubuntu_build:
61-
name: Build test APP [ ${{ matrix.runs_on }} | ${{ matrix.bootstrap.name }} ]
62-
needs: [flake8]
63-
runs-on: ${{ matrix.runs_on }}
64-
continue-on-error: true
65-
strategy:
66-
matrix:
67-
runs_on: [ubuntu-latest]
68-
bootstrap:
69-
- name: sdl2
70-
target: testapps-with-numpy
71-
# - name: sdl2_scipy # TODO: Re-enable this failing test.
72-
# target: testapps-with-scipy
73-
- name: webview
74-
target: testapps-webview
75-
- name: service_library
76-
target: testapps-service_library-aar
77-
- name: qt
78-
target: testapps-qt
79-
steps:
80-
- name: Checkout python-for-android
81-
uses: actions/checkout@v4
82-
- name: Build python-for-android docker image
83-
run: |
84-
docker build --tag=kivy/python-for-android .
85-
- name: Build multi-arch ${{ matrix.bootstrap.target }} artifact with docker
86-
run: |
87-
docker run --name p4a-latest kivy/python-for-android make ${{ matrix.bootstrap.target }}
88-
- name: Copy produced artifacts from docker container (*.apk, *.aab)
89-
if: matrix.bootstrap.name != 'service_library'
90-
run: |
91-
mkdir -p dist
92-
docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.APK_ARTIFACT_FILENAME }} dist/
93-
docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.AAB_ARTIFACT_FILENAME }} dist/
94-
- name: Copy produced artifacts from docker container (*.aar)
95-
if: matrix.bootstrap.name == 'service_library'
96-
run: |
97-
mkdir -p dist
98-
docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.AAR_ARTIFACT_FILENAME }} dist/
99-
- name: Rename artifacts to include the build platform name (*.apk, *.aab, *.aar)
100-
run: |
101-
if [ -f dist/${{ env.APK_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.APK_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.APK_ARTIFACT_FILENAME }}; fi
102-
if [ -f dist/${{ env.AAB_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAB_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAB_ARTIFACT_FILENAME }}; fi
103-
if [ -f dist/${{ env.AAR_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAR_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAR_ARTIFACT_FILENAME }}; fi
104-
- name: Upload artifacts
105-
uses: actions/upload-artifact@v4
106-
with:
107-
name: ${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-artifacts
108-
path: dist
61+
# ubuntu_build:
62+
# name: Build test APP [ ${{ matrix.runs_on }} | ${{ matrix.bootstrap.name }} ]
63+
# needs: [flake8]
64+
# runs-on: ${{ matrix.runs_on }}
65+
# continue-on-error: true
66+
# strategy:
67+
# matrix:
68+
# runs_on: [ubuntu-latest]
69+
# bootstrap:
70+
# - name: sdl2
71+
# target: testapps-with-numpy
72+
# # - name: sdl2_scipy # TODO: Re-enable this failing test.
73+
# # target: testapps-with-scipy
74+
# - name: webview
75+
# target: testapps-webview
76+
# - name: service_library
77+
# target: testapps-service_library-aar
78+
# - name: qt
79+
# target: testapps-qt
80+
# steps:
81+
# - name: Checkout python-for-android
82+
# uses: actions/checkout@v4
83+
# - name: Build python-for-android docker image
84+
# run: |
85+
# docker build --tag=kivy/python-for-android .
86+
# - name: Build multi-arch ${{ matrix.bootstrap.target }} artifact with docker
87+
# run: |
88+
# docker run --name p4a-latest kivy/python-for-android make ${{ matrix.bootstrap.target }}
89+
# - name: Copy produced artifacts from docker container (*.apk, *.aab)
90+
# if: matrix.bootstrap.name != 'service_library'
91+
# run: |
92+
# mkdir -p dist
93+
# docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.APK_ARTIFACT_FILENAME }} dist/
94+
# docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.AAB_ARTIFACT_FILENAME }} dist/
95+
# - name: Copy produced artifacts from docker container (*.aar)
96+
# if: matrix.bootstrap.name == 'service_library'
97+
# run: |
98+
# mkdir -p dist
99+
# docker cp p4a-latest:/home/user/app/testapps/on_device_unit_tests/${{ env.AAR_ARTIFACT_FILENAME }} dist/
100+
# - name: Rename artifacts to include the build platform name (*.apk, *.aab, *.aar)
101+
# run: |
102+
# if [ -f dist/${{ env.APK_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.APK_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.APK_ARTIFACT_FILENAME }}; fi
103+
# if [ -f dist/${{ env.AAB_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAB_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAB_ARTIFACT_FILENAME }}; fi
104+
# if [ -f dist/${{ env.AAR_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAR_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAR_ARTIFACT_FILENAME }}; fi
105+
# - name: Upload artifacts
106+
# uses: actions/upload-artifact@v4
107+
# with:
108+
# name: ${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-artifacts
109+
# path: dist
109110

110-
macos_build:
111-
name: Build test APP [ ${{ matrix.runs_on }} | ${{ matrix.bootstrap.name }} ]
112-
needs: [flake8]
113-
runs-on: ${{ matrix.runs_on }}
114-
continue-on-error: true
115-
strategy:
116-
matrix:
117-
# macos-latest (ATM macos-14) runs on Apple Silicon,
118-
# macos-13 runs on Intel
119-
runs_on: ['macos-latest', 'macos-13']
120-
bootstrap:
121-
- name: sdl2
122-
target: testapps-with-numpy
123-
- name: webview
124-
target: testapps-webview
125-
env:
126-
ANDROID_HOME: ${HOME}/.android
127-
ANDROID_SDK_ROOT: ${HOME}/.android/android-sdk
128-
ANDROID_SDK_HOME: ${HOME}/.android/android-sdk
129-
ANDROID_NDK_HOME: ${HOME}/.android/android-ndk
130-
steps:
131-
- name: Checkout python-for-android
132-
uses: actions/checkout@v4
133-
- name: Set up Python 3.x
134-
uses: actions/setup-python@v5
135-
with:
136-
python-version: 3.x
137-
- name: Install python-for-android
138-
run: |
139-
python3 -m pip install -e .
140-
- name: Install prerequisites via pythonforandroid/prerequisites.py (Experimental)
141-
run: |
142-
python3 pythonforandroid/prerequisites.py
143-
- name: Install dependencies (Legacy)
144-
run: |
145-
make --file ci/makefiles/osx.mk
146-
- name: Build multi-arch apk Python 3 (armeabi-v7a, arm64-v8a, x86_64, x86)
147-
run: |
148-
make ${{ matrix.bootstrap.target }}
149-
- name: Copy produced artifacts into dist/ (*.apk, *.aab)
150-
run: |
151-
mkdir -p dist
152-
cp testapps/on_device_unit_tests/*.apk dist/
153-
cp testapps/on_device_unit_tests/*.aab dist/
154-
ls -l dist/
155-
- name: Rename artifacts to include the build platform name (*.apk, *.aab)
156-
run: |
157-
if [ -f dist/${{ env.APK_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.APK_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.APK_ARTIFACT_FILENAME }}; fi
158-
if [ -f dist/${{ env.AAB_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAB_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAB_ARTIFACT_FILENAME }}; fi
159-
- name: Upload artifacts
160-
uses: actions/upload-artifact@v4
161-
with:
162-
name: ${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-artifacts
163-
path: dist
111+
# macos_build:
112+
# name: Build test APP [ ${{ matrix.runs_on }} | ${{ matrix.bootstrap.name }} ]
113+
# needs: [flake8]
114+
# runs-on: ${{ matrix.runs_on }}
115+
# continue-on-error: true
116+
# strategy:
117+
# matrix:
118+
# # macos-latest (ATM macos-14) runs on Apple Silicon,
119+
# # macos-13 runs on Intel
120+
# runs_on: ['macos-latest', 'macos-13']
121+
# bootstrap:
122+
# - name: sdl2
123+
# target: testapps-with-numpy
124+
# - name: webview
125+
# target: testapps-webview
126+
# env:
127+
# ANDROID_HOME: ${HOME}/.android
128+
# ANDROID_SDK_ROOT: ${HOME}/.android/android-sdk
129+
# ANDROID_SDK_HOME: ${HOME}/.android/android-sdk
130+
# ANDROID_NDK_HOME: ${HOME}/.android/android-ndk
131+
# steps:
132+
# - name: Checkout python-for-android
133+
# uses: actions/checkout@v4
134+
# - name: Set up Python 3.x
135+
# uses: actions/setup-python@v5
136+
# with:
137+
# python-version: 3.x
138+
# - name: Install python-for-android
139+
# run: |
140+
# python3 -m pip install -e .
141+
# - name: Install prerequisites via pythonforandroid/prerequisites.py (Experimental)
142+
# run: |
143+
# python3 pythonforandroid/prerequisites.py
144+
# - name: Install dependencies (Legacy)
145+
# run: |
146+
# make --file ci/makefiles/osx.mk
147+
# - name: Build multi-arch apk Python 3 (armeabi-v7a, arm64-v8a, x86_64, x86)
148+
# run: |
149+
# make ${{ matrix.bootstrap.target }}
150+
# - name: Copy produced artifacts into dist/ (*.apk, *.aab)
151+
# run: |
152+
# mkdir -p dist
153+
# cp testapps/on_device_unit_tests/*.apk dist/
154+
# cp testapps/on_device_unit_tests/*.aab dist/
155+
# ls -l dist/
156+
# - name: Rename artifacts to include the build platform name (*.apk, *.aab)
157+
# run: |
158+
# if [ -f dist/${{ env.APK_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.APK_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.APK_ARTIFACT_FILENAME }}; fi
159+
# if [ -f dist/${{ env.AAB_ARTIFACT_FILENAME }} ]; then mv dist/${{ env.AAB_ARTIFACT_FILENAME }} dist/${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-${{ env.AAB_ARTIFACT_FILENAME }}; fi
160+
# - name: Upload artifacts
161+
# uses: actions/upload-artifact@v4
162+
# with:
163+
# name: ${{ matrix.runs_on }}-${{ matrix.bootstrap.name }}-artifacts
164+
# path: dist
164165

165-
ubuntu_rebuild_updated_recipes:
166-
name: Test updated recipes for arch ${{ matrix.android_arch }} [ ubuntu-latest ]
167-
needs: [flake8]
168-
runs-on: ubuntu-latest
169-
continue-on-error: true
170-
strategy:
171-
matrix:
172-
android_arch: ["arm64-v8a", "armeabi-v7a", "x86_64", "x86"]
173-
env:
174-
REBUILD_UPDATED_RECIPES_EXTRA_ARGS: --arch=${{ matrix.android_arch }}
175-
steps:
176-
- name: Checkout python-for-android (all-history)
177-
uses: actions/checkout@v4
178-
with:
179-
fetch-depth: 0
180-
# helps with GitHub runner getting out of space
181-
- name: Free disk space
182-
run: |
183-
df -h
184-
sudo swapoff -a
185-
sudo rm -f /swapfile
186-
sudo apt -y clean
187-
docker images -q | xargs -r docker rmi
188-
df -h
189-
- name: Pull docker image
190-
run: |
191-
make docker/pull
192-
- name: Rebuild updated recipes
193-
run: |
194-
make docker/run/make/rebuild_updated_recipes
166+
# ubuntu_rebuild_updated_recipes:
167+
# name: Test updated recipes for arch ${{ matrix.android_arch }} [ ubuntu-latest ]
168+
# needs: [flake8]
169+
# runs-on: ubuntu-latest
170+
# continue-on-error: true
171+
# strategy:
172+
# matrix:
173+
# android_arch: ["arm64-v8a", "armeabi-v7a", "x86_64", "x86"]
174+
# env:
175+
# REBUILD_UPDATED_RECIPES_EXTRA_ARGS: --arch=${{ matrix.android_arch }}
176+
# steps:
177+
# - name: Checkout python-for-android (all-history)
178+
# uses: actions/checkout@v4
179+
# with:
180+
# fetch-depth: 0
181+
# # helps with GitHub runner getting out of space
182+
# - name: Free disk space
183+
# run: |
184+
# df -h
185+
# sudo swapoff -a
186+
# sudo rm -f /swapfile
187+
# sudo apt -y clean
188+
# docker images -q | xargs -r docker rmi
189+
# df -h
190+
# - name: Pull docker image
191+
# run: |
192+
# make docker/pull
193+
# - name: Rebuild updated recipes
194+
# run: |
195+
# make docker/run/make/rebuild_updated_recipes
195196

196197
macos_rebuild_updated_recipes:
197198
name: Test updated recipes for arch ${{ matrix.android_arch }} [ ${{ matrix.runs_on }} ]
@@ -200,7 +201,9 @@ jobs:
200201
continue-on-error: true
201202
strategy:
202203
matrix:
203-
android_arch: ["arm64-v8a", "armeabi-v7a", "x86_64", "x86"]
204+
# TODO: disable to not waste CPU time during testing
205+
# android_arch: ["arm64-v8a", "armeabi-v7a", "x86_64", "x86"]
206+
android_arch: ["arm64-v8a", "x86_64"]
204207
# macos-latest (ATM macos-14) runs on Apple Silicon,
205208
# macos-13 runs on Intel
206209
runs_on: ['macos-latest', 'macos-13']
@@ -232,25 +235,25 @@ jobs:
232235
run: |
233236
make rebuild_updated_recipes
234237
235-
coveralls_finish:
236-
needs: test
237-
runs-on: ubuntu-latest
238-
steps:
239-
- name: Coveralls Finished
240-
uses: AndreMiras/coveralls-python-action@develop
241-
with:
242-
parallel-finished: true
238+
# coveralls_finish:
239+
# needs: test
240+
# runs-on: ubuntu-latest
241+
# steps:
242+
# - name: Coveralls Finished
243+
# uses: AndreMiras/coveralls-python-action@develop
244+
# with:
245+
# parallel-finished: true
243246

244-
documentation:
245-
runs-on: ubuntu-latest
246-
steps:
247-
- uses: actions/checkout@v4
248-
- name: Requirements
249-
run: |
250-
python -m pip install --upgrade pip
251-
pip install -r doc/requirements.txt
252-
- name: Check links
253-
run: sphinx-build -b linkcheck doc/source doc/build
254-
- name: Generate documentation
255-
run: sphinx-build doc/source doc/build
247+
# documentation:
248+
# runs-on: ubuntu-latest
249+
# steps:
250+
# - uses: actions/checkout@v4
251+
# - name: Requirements
252+
# run: |
253+
# python -m pip install --upgrade pip
254+
# pip install -r doc/requirements.txt
255+
# - name: Check links
256+
# run: sphinx-build -b linkcheck doc/source doc/build
257+
# - name: Generate documentation
258+
# run: sphinx-build doc/source doc/build
256259

0 commit comments

Comments
 (0)