Skip to content

Commit ecab21c

Browse files
committed
Update CI/CD workflows to support 20 wheel packages across 4 platforms with Python 3.14 enabled
1 parent 671c8f5 commit ecab21c

4 files changed

Lines changed: 17 additions & 19 deletions

File tree

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,15 @@ jobs:
102102
echo "📦 Wheels for PyPI (current platforms):"
103103
ls dist/*.whl
104104
105-
# Count wheels (should be 16: 4 platforms x 4 Python versions)
105+
# Count wheels (should be 20: 4 platforms x 5 Python versions)
106106
WHEEL_COUNT=$(ls dist/*.whl | wc -l)
107-
echo "📊 Wheel count: $WHEEL_COUNT (expected: 16)"
107+
echo "📊 Wheel count: $WHEEL_COUNT (expected: 20)"
108108
109109
echo ""
110110
echo "ℹ️ Current PyPI platforms: linux x86_64, linux arm64, macOS Apple Silicon, windows x86_64"
111111
112-
if [ "$WHEEL_COUNT" -ne 16 ]; then
113-
echo "❌ Expected 16 wheels (4 platforms x 4 Python versions), got $WHEEL_COUNT"
112+
if [ "$WHEEL_COUNT" -ne 20 ]; then
113+
echo "❌ Expected 20 wheels (4 platforms x 5 Python versions), got $WHEEL_COUNT"
114114
exit 1
115115
fi
116116

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ jobs:
126126
- '3.11'
127127
- '3.12'
128128
- '3.13'
129-
# - '3.14' # Temporarily disabled to reduce wheel storage usage
129+
- '3.14'
130130
# Temporarily limit to four platforms (skip macOS x86_64, Windows ARM64)
131131
# platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
132132
platform: ['linux/amd64', 'linux/arm64', 'darwin/arm64', 'windows/amd64']
@@ -433,7 +433,6 @@ jobs:
433433
echo "**Package**: arcadedb-embedded" >> $GITHUB_STEP_SUMMARY
434434
echo "" >> $GITHUB_STEP_SUMMARY
435435
echo "ℹ️ **Note**: Some platform/Python combinations are excluded from testing:" >> $GITHUB_STEP_SUMMARY
436-
echo "- Python 3.14 is temporarily disabled to reduce wheel storage usage" >> $GITHUB_STEP_SUMMARY
437436
echo "- Windows ARM64 (no GitHub-hosted runners available)" >> $GITHUB_STEP_SUMMARY
438437
echo "- macOS x86_64 (temporarily disabled)" >> $GITHUB_STEP_SUMMARY
439438
else

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135
- '3.11'
136136
- '3.12'
137137
- '3.13'
138-
# - '3.14' # Temporarily disabled to reduce wheel storage usage
138+
- '3.14'
139139
# Temporarily limit to four platforms (skip macOS x86_64, Windows ARM64)
140140
# platform: ['linux/amd64', 'linux/arm64', 'darwin/amd64', 'darwin/arm64', 'windows/amd64', 'windows/arm64']
141141
platform: ['linux/amd64', 'linux/arm64', 'darwin/arm64', 'windows/amd64']

bindings/python/docs/development/ci-setup.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
The CI/CD workflows now support building and releasing across **4 platforms** for a total of **16 wheel packages** per release (4 platforms × 4 Python versions), all under the single `arcadedb-embedded` package.
5+
The CI/CD workflows now support building and releasing across **4 platforms** for a total of **20 wheel packages** per release (4 platforms × 5 Python versions), all under the single `arcadedb-embedded` package.
66

77
## Build Matrix
88

@@ -19,27 +19,26 @@ The CI/CD workflows now support building and releasing across **4 platforms** fo
1919

2020
### Total Artifacts
2121

22-
**16 wheels per release**: 1 package × 4 platforms × 4 Python versions = 16 wheels
22+
**20 wheels per release**: 1 package × 4 platforms × 5 Python versions = 20 wheels
2323

2424
## Workflow Changes
2525

2626
### `test-python-bindings.yml`
2727

28-
- **Matrix**: `platform: [linux/amd64, linux/arm64, darwin/arm64, windows/amd64]` and `python-version: [3.10, 3.11, 3.12, 3.13]`
29-
- **Note**: Python 3.14 is temporarily disabled (commented out) to reduce wheel storage usage
28+
- **Matrix**: `platform: [linux/amd64, linux/arm64, darwin/arm64, windows/amd64]` and `python-version: [3.10, 3.11, 3.12, 3.13, 3.14]`
3029
- **Runners**: All native (no QEMU emulation)
3130
- ubuntu-24.04 (Linux x64)
3231
- ubuntu-24.04-arm (Linux ARM64)
3332
- macos-15 (macOS Apple Silicon)
3433
- windows-2025 (Windows x86_64)
35-
- **Jobs**: 16 total (4 platforms × 4 Python versions)
36-
- **Artifacts**: `wheel-{platform}-py{version}` (16 artifacts)
34+
- **Jobs**: 20 total (4 platforms × 5 Python versions)
35+
- **Artifacts**: `wheel-{platform}-py{version}` (20 artifacts)
3736

3837
### `release-python-packages.yml`
3938

40-
- **Artifacts**: `wheel-{platform}-py{version}` (16 artifacts)
39+
- **Artifacts**: `wheel-{platform}-py{version}` (20 artifacts)
4140
- **Publish Job**:
42-
- `publish-pypi`: Collects all 16 wheels and publishes to `arcadedb-embedded`
41+
- `publish-pypi`: Collects all 20 wheels and publishes to `arcadedb-embedded`
4342

4443
## GitHub Repository Setup Required
4544

@@ -87,15 +86,15 @@ You need to create one environment in GitHub repository settings:
8786
4. **Monitor the workflow**:
8887
- Go to Actions tab
8988
- Watch `Build and Release Python Packages to PyPI`
90-
- Check that 16 wheels are built and publish job succeeds
89+
- Check that 20 wheels are built and publish job succeeds
9190

9291
## Validation
9392

9493
### Expected Artifacts
9594

9695
After a successful release, you should see:
9796

98-
- **16 wheel files** on PyPI for `arcadedb-embedded` (4 platforms × 4 Python versions)
97+
- **20 wheel files** on PyPI for `arcadedb-embedded` (4 platforms × 5 Python versions)
9998

10099
### Test Results (CI run #96)
101100

@@ -181,7 +180,7 @@ All platforms now use platform-specific JVM library paths:
181180
182181
### Wheel count mismatch
183182
184-
- The publish job validates that exactly 16 wheels exist
183+
- The publish job validates that exactly 20 wheels exist
185184
- If validation fails, check the build matrix jobs for failures
186185
- Ensure all 4 platform builds succeeded
187186
@@ -199,6 +198,6 @@ All platforms use pinned runner versions for reproducibility:
199198
1. **Create GitHub environment** (`pypi`)
200199
2. **Set up PyPI trusted publisher** for `arcadedb-embedded`
201200
3. **Test with a dev tag**: `git tag 25.10.1.dev0 && git push origin 25.10.1.dev0`
202-
4. **Verify 16 wheels are published** to PyPI (4 platforms × 4 Python versions)
201+
4. **Verify 20 wheels are published** to PyPI (4 platforms × 5 Python versions)
203202
5. **Test installation** on the supported platforms
204203
6. **Verify no Java required** on end-user systems (JRE bundled)

0 commit comments

Comments
 (0)