Skip to content

Commit 854b623

Browse files
committed
Address wheels workflow PR review feedback for Linux cibuildwheel.
Use package-manager OpenJDK on manylinux_2_28, deduplicate shared Linux env via YAML anchor, and make Linux step conditions explicit.
1 parent 43d13cf commit 854b623

1 file changed

Lines changed: 46 additions & 81 deletions

File tree

.github/workflows/wheels.yml

Lines changed: 46 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,47 @@ on:
66
- "rc/**"
77
workflow_dispatch:
88

9+
x-cibw-linux-shared: &cibw-linux-shared
10+
CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux }}
11+
CIBW_SKIP: "pp* *-musllinux*"
12+
MACOSX_DEPLOYMENT_TARGET: "12.0"
13+
CIBW_BEFORE_ALL_LINUX: |
14+
set -euxo pipefail
15+
if command -v yum >/dev/null 2>&1; then
16+
yum install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
17+
elif command -v dnf >/dev/null 2>&1; then
18+
dnf install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
19+
else
20+
echo "No supported package manager found (expected yum or dnf)." ; exit 1
21+
fi
22+
if (command -v dnf >/dev/null 2>&1 && dnf install -y java-17-openjdk-devel) \
23+
|| (command -v yum >/dev/null 2>&1 && yum install -y java-17-openjdk-devel); then
24+
export JAVA_HOME="$(dirname "$(dirname "$(readlink -f "$(command -v javac)")")")"
25+
else
26+
ARCH="$(uname -m)"
27+
mkdir -p /opt/java
28+
if [ "$ARCH" = "x86_64" ]; then
29+
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz"
30+
else
31+
# aarch64
32+
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-aarch64_bin.tar.gz"
33+
fi
34+
curl -L -o /tmp/jdk17.tar.gz "$JDK_URL"
35+
tar -xzf /tmp/jdk17.tar.gz -C /opt/java
36+
export JAVA_HOME=$(echo /opt/java/jdk-17.0.12*)
37+
fi
38+
export PATH="$JAVA_HOME/bin:$PATH"
39+
java -version
40+
41+
chmod +x mvnw || true
42+
./mvnw -Pwith-cpp clean package \
43+
-DskipTests -Dbuild.test=OFF \
44+
-Dspotless.check.skip=true -Dspotless.apply.skip=true
45+
test -d cpp/target/build/lib && test -d cpp/target/build/include
46+
CIBW_TEST_COMMAND: >
47+
python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')"
48+
CIBW_BUILD_VERBOSITY: "1"
49+
950
jobs:
1051
build:
1152
name: Build wheels on ${{ matrix.name }}
@@ -100,97 +141,21 @@ jobs:
100141
otool -l cpp/target/build/lib/libtsfile*.dylib | grep -A2 LC_VERSION_MIN_MACOSX || true
101142
102143
- name: Build wheels via cibuildwheel (Linux cp39-cp313)
103-
if: matrix.platform != 'macos'
104-
env:
105-
CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux }}
106-
# CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_archs_windows }}
107-
144+
if: matrix.platform == 'linux'
145+
env:
146+
<<: *cibw-linux-shared
108147
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
109-
CIBW_SKIP: "pp* *-musllinux*"
110-
111148
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014"
112149
CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux2014"
113-
114-
MACOSX_DEPLOYMENT_TARGET: "12.0"
115-
116-
CIBW_BEFORE_ALL_LINUX: |
117-
set -euxo pipefail
118-
if command -v yum >/dev/null 2>&1; then
119-
yum install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
120-
else
121-
echo "Not a yum-based image?" ; exit 1
122-
fi
123-
ARCH="$(uname -m)"
124-
mkdir -p /opt/java
125-
if [ "$ARCH" = "x86_64" ]; then
126-
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz"
127-
else
128-
# aarch64
129-
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-aarch64_bin.tar.gz"
130-
fi
131-
curl -L -o /tmp/jdk17.tar.gz "$JDK_URL"
132-
tar -xzf /tmp/jdk17.tar.gz -C /opt/java
133-
export JAVA_HOME=$(echo /opt/java/jdk-17.0.12*)
134-
export PATH="$JAVA_HOME/bin:$PATH"
135-
java -version
136-
137-
chmod +x mvnw || true
138-
./mvnw -Pwith-cpp clean package \
139-
-DskipTests -Dbuild.test=OFF \
140-
-Dspotless.check.skip=true -Dspotless.apply.skip=true
141-
test -d cpp/target/build/lib && test -d cpp/target/build/include
142-
143-
CIBW_TEST_COMMAND: >
144-
python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')"
145-
CIBW_BUILD_VERBOSITY: "1"
146150
run: cibuildwheel --output-dir wheelhouse python
147151

148152
- name: Build wheels via cibuildwheel (Linux cp314)
149-
if: matrix.platform != 'macos'
153+
if: matrix.platform == 'linux'
150154
env:
151-
CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux }}
152-
# CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_archs_windows }}
153-
155+
<<: *cibw-linux-shared
154156
CIBW_BUILD: "cp314-*"
155-
CIBW_SKIP: "pp* *-musllinux*"
156-
157157
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28"
158158
CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux_2_28"
159-
160-
MACOSX_DEPLOYMENT_TARGET: "12.0"
161-
162-
CIBW_BEFORE_ALL_LINUX: |
163-
set -euxo pipefail
164-
if command -v yum >/dev/null 2>&1; then
165-
yum install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
166-
elif command -v dnf >/dev/null 2>&1; then
167-
dnf install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel
168-
else
169-
echo "No supported package manager found (expected yum or dnf)." ; exit 1
170-
fi
171-
ARCH="$(uname -m)"
172-
mkdir -p /opt/java
173-
if [ "$ARCH" = "x86_64" ]; then
174-
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz"
175-
else
176-
# aarch64
177-
JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-aarch64_bin.tar.gz"
178-
fi
179-
curl -L -o /tmp/jdk17.tar.gz "$JDK_URL"
180-
tar -xzf /tmp/jdk17.tar.gz -C /opt/java
181-
export JAVA_HOME=$(echo /opt/java/jdk-17.0.12*)
182-
export PATH="$JAVA_HOME/bin:$PATH"
183-
java -version
184-
185-
chmod +x mvnw || true
186-
./mvnw -Pwith-cpp clean package \
187-
-DskipTests -Dbuild.test=OFF \
188-
-Dspotless.check.skip=true -Dspotless.apply.skip=true
189-
test -d cpp/target/build/lib && test -d cpp/target/build/include
190-
191-
CIBW_TEST_COMMAND: >
192-
python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')"
193-
CIBW_BUILD_VERBOSITY: "1"
194159
run: cibuildwheel --output-dir wheelhouse python
195160

196161
- name: Build wheels via cibuildwheel (macOS)

0 commit comments

Comments
 (0)