Skip to content

Commit e8560e4

Browse files
committed
Temporarily limit CI platforms to enhance build stability: skip macOS x86_64 and all Windows
1 parent 0e1cb9b commit e8560e4

3 files changed

Lines changed: 67 additions & 58 deletions

File tree

.github/workflows/release-python-packages.yml

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,18 @@ jobs:
8383
runs-on: ubuntu-latest
8484
strategy:
8585
matrix:
86+
# Temporarily limit to three platforms (skip macOS x86_64 and all Windows)
87+
# platform:
88+
# - linux-amd64
89+
# - linux-arm64
90+
# - darwin-amd64
91+
# - darwin-arm64
92+
# - windows-amd64
93+
# - windows-arm64
8694
platform:
8795
- linux-amd64
8896
- linux-arm64
89-
- darwin-amd64
9097
- darwin-arm64
91-
- windows-amd64
92-
- windows-arm64
9398

9499
steps:
95100
- name: Download wheel from test job
@@ -137,16 +142,13 @@ jobs:
137142
run: |
138143
mkdir -p dist
139144
140-
# Only copy wheels for the 3 most common platforms (~90% of developers)
141-
# Skipped platforms (available via GitHub Releases):
142-
# - darwin-amd64 (~3-5%): Intel Macs can use darwin-arm64 via Rosetta 2
143-
# - linux-arm64 (~5-8%): Raspberry Pi, AWS Graviton
144-
# - windows-arm64 (~1-2%): Surface Pro X
145+
# Only copy wheels for the 3 platforms we currently ship on PyPI
146+
# Previous set (commented for future reference): linux-amd64 darwin-arm64 windows-amd64 linux-arm64 darwin-amd64 windows-arm64
145147
146-
echo "📦 Collecting wheels for PyPI (main platforms only)..."
148+
echo "📦 Collecting wheels for PyPI (current platforms)..."
147149
148150
# Copy main platform wheels
149-
for platform in linux-amd64 darwin-arm64 windows-amd64; do
151+
for platform in linux-amd64 darwin-arm64 linux-arm64; do
150152
if [ -d "wheels-temp/wheel-$platform" ]; then
151153
cp wheels-temp/wheel-$platform/*.whl dist/ 2>/dev/null || true
152154
echo " ✅ $platform"
@@ -162,20 +164,20 @@ jobs:
162164
- name: Verify wheels
163165
run: |
164166
ls -lh dist/
165-
echo "📦 Wheels for PyPI (3 main platforms):"
167+
echo "📦 Wheels for PyPI (current platforms):"
166168
ls dist/*.whl
167169
168-
# Count wheels (should be 3: linux-amd64, darwin-arm64, windows-amd64)
170+
# Count wheels (should be 3: linux-amd64, linux-arm64, darwin-arm64)
169171
WHEEL_COUNT=$(ls dist/*.whl | wc -l)
170172
echo "📊 Wheel count: $WHEEL_COUNT (expected: 3)"
171173
172174
echo ""
173175
echo "ℹ️ Platforms not on PyPI (available via GitHub Releases):"
174-
echo " - darwin-amd64 (~3-5%): Intel Macs can use darwin-arm64 via Rosetta 2"
175-
echo " - linux-arm64 (~5-8%): Raspberry Pi, AWS Graviton"
176+
echo " - darwin-amd64 (~3-5%): Intel Macs can use darwin-arm64 via Rosetta 2" # formerly on PyPI
177+
echo " - windows-amd64 (~85-90% of Windows)" # formerly on PyPI
176178
echo " - windows-arm64 (~1-2%): Surface Pro X"
177179
echo ""
178-
echo " Coverage: ~90% of developers with these 3 platforms"
180+
echo " Current PyPI coverage: linux x86_64, linux arm64, macOS Apple Silicon"
179181
180182
if [ "$WHEEL_COUNT" -ne 3 ]; then
181183
echo "❌ Expected 3 wheels (3 main platforms), got $WHEEL_COUNT"
@@ -202,12 +204,14 @@ jobs:
202204
# Extract platform from filename
203205
if [[ "$WHEEL_NAME" == *"manylinux"*"x86_64"* ]]; then
204206
PLATFORM="linux/amd64"
205-
elif [[ "$WHEEL_NAME" == *"macosx"*"x86_64"* ]]; then
206-
PLATFORM="darwin/amd64"
207+
elif [[ "$WHEEL_NAME" == *"manylinux"*"aarch64"* ]]; then
208+
PLATFORM="linux/arm64"
207209
elif [[ "$WHEEL_NAME" == *"macosx"*"arm64"* ]]; then
208210
PLATFORM="darwin/arm64"
209-
elif [[ "$WHEEL_NAME" == *"win_amd64"* ]]; then
210-
PLATFORM="windows/amd64"
211+
# elif [[ "$WHEEL_NAME" == *"macosx"*"x86_64"* ]]; then
212+
# PLATFORM="darwin/amd64"
213+
# elif [[ "$WHEEL_NAME" == *"win_amd64"* ]]; then
214+
# PLATFORM="windows/amd64"
211215
else
212216
PLATFORM="unknown"
213217
fi
@@ -266,13 +270,13 @@ jobs:
266270
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
267271

268272
github-release:
269-
name: Create GitHub Release (All 6 platforms)
273+
name: Create GitHub Release (All enabled platforms)
270274
needs: [validate-version, prepare-wheels]
271275
runs-on: ubuntu-latest
272276
permissions:
273277
contents: write
274278
steps:
275-
- name: Download all wheels (all 6 platforms)
279+
- name: Download all wheels (all enabled platforms)
276280
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
277281
with:
278282
pattern: wheel-*

.github/workflows/test-python-bindings.yml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -115,20 +115,23 @@ jobs:
115115
fail-fast: false
116116
matrix:
117117
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
118-
platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
118+
# Temporarily limit to three platforms (skip macOS x86_64 and all Windows)
119+
# platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
120+
platform: ['linux/amd64', 'linux/arm64', 'darwin/arm64']
119121
include:
120122
- platform: linux/amd64
121123
runs-on: ubuntu-24.04
122124
- platform: linux/arm64
123125
runs-on: ubuntu-24.04-arm
124-
- platform: darwin/amd64
125-
runs-on: macos-15-intel
126126
- platform: darwin/arm64
127127
runs-on: macos-15
128-
- platform: windows/amd64
129-
runs-on: windows-2025
130-
- platform: windows/arm64
131-
runs-on: windows-11-arm
128+
# - platform: darwin/amd64
129+
# runs-on: macos-15-intel
130+
# - platform: windows/amd64
131+
# runs-on: windows-2025
132+
# - platform: windows/arm64
133+
# runs-on: windows-11-arm
134+
# macOS x86_64 and all Windows temporarily disabled
132135

133136
steps:
134137
- name: Checkout code
@@ -165,15 +168,14 @@ jobs:
165168
python -m pip install --upgrade pip
166169
pip install build wheel setuptools
167170
168-
- name: Create python3 symlink (Windows only)
169-
if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
170-
shell: bash
171-
run: |
172-
# On Windows, setup-python doesn't create python3 symlink
173-
# Create it so build scripts work
174-
PYTHON_DIR=$(dirname "$(which python)")
175-
ln -s "$PYTHON_DIR/python.exe" "$PYTHON_DIR/python3.exe" || true
176-
python3 --version
171+
# Windows currently disabled, no symlink needed
172+
# - name: Create python3 symlink (Windows only)
173+
# if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
174+
# shell: bash
175+
# run: |
176+
# PYTHON_DIR=$(dirname "$(which python)")
177+
# ln -s "$PYTHON_DIR/python.exe" "$PYTHON_DIR/python3.exe" || true
178+
# python3 --version
177179

178180
- name: Build and test arcadedb-embedded (${{ matrix.platform }})
179181
shell: bash

.github/workflows/test-python-examples.yml

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -111,20 +111,23 @@ jobs:
111111
fail-fast: false
112112
matrix:
113113
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
114-
platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
114+
# Temporarily limit to three platforms (skip macOS x86_64, all Windows)
115+
# platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
116+
platform: ['linux/amd64', 'linux/arm64', 'darwin/arm64']
115117
include:
116118
- platform: linux/amd64
117119
runs-on: ubuntu-24.04
118120
- platform: linux/arm64
119121
runs-on: ubuntu-24.04-arm
120-
- platform: darwin/amd64
121-
runs-on: macos-15-intel
122122
- platform: darwin/arm64
123123
runs-on: macos-15
124-
- platform: windows/amd64
125-
runs-on: windows-2025
126-
- platform: windows/arm64
127-
runs-on: windows-11-arm
124+
# - platform: darwin/amd64
125+
# runs-on: macos-15-intel
126+
# - platform: windows/amd64
127+
# runs-on: windows-2025
128+
# - platform: windows/arm64
129+
# runs-on: windows-11-arm
130+
# macOS x86_64 and all Windows temporarily disabled
128131

129132
steps:
130133
- name: Checkout code
@@ -158,14 +161,14 @@ jobs:
158161
python -m pip install --upgrade pip
159162
pip install build wheel setuptools
160163
161-
- name: Create python3 symlink (Windows only)
162-
if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
163-
shell: bash
164-
run: |
165-
# On Windows, setup-python doesn't create python3 symlink
166-
PYTHON_DIR=$(dirname "$(which python)")
167-
ln -s "$PYTHON_DIR/python.exe" "$PYTHON_DIR/python3.exe" || true
168-
python3 --version
164+
# Windows currently disabled, no symlink needed
165+
# - name: Create python3 symlink (Windows only)
166+
# if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
167+
# shell: bash
168+
# run: |
169+
# PYTHON_DIR=$(dirname "$(which python)")
170+
# ln -s "$PYTHON_DIR/python.exe" "$PYTHON_DIR/python3.exe" || true
171+
# python3 --version
169172

170173
- name: Build arcadedb-embedded (${{ matrix.platform }})
171174
shell: bash
@@ -215,12 +218,12 @@ jobs:
215218
# macOS doesn't have timeout command by default, use coreutils
216219
brew install coreutils
217220
218-
- name: Set UTF-8 encoding (Windows only)
219-
if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
220-
shell: bash
221-
run: |
222-
# Set UTF-8 encoding to handle emoji characters
223-
echo "PYTHONIOENCODING=utf-8" >> $GITHUB_ENV
221+
# Windows currently disabled, no env override needed
222+
# - name: Set UTF-8 encoding (Windows only)
223+
# if: matrix.platform == 'windows/amd64' || matrix.platform == 'windows/arm64'
224+
# shell: bash
225+
# run: |
226+
# echo "PYTHONIOENCODING=utf-8" >> $GITHUB_ENV
224227

225228
- name: Run all examples
226229
id: run_examples

0 commit comments

Comments
 (0)