Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 25 additions & 13 deletions scripts/build_wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@

set -e -u -x

PACKAGE_NAME=pygridgain
PY_VERS="cp39 cp310 cp311 cp312 cp313"

function repair_wheel {
wheel="$1"
if ! auditwheel show "$wheel"; then
Expand All @@ -26,25 +29,34 @@ function repair_wheel {
fi
}

# Compile wheels
for PYBIN in /opt/python/*/bin; do
if [[ $PYBIN =~ ^(.*)cp39(.*)$ ]] || [[ $PYBIN =~ ^(.*)cp31[0123](.*)$ ]]; then
"${PYBIN}/pip" wheel /pygridgain/ --no-deps -w /wheels
fi
done
for PY_VER in $PY_VERS; do
for PYBIN in /opt/python/*/bin; do
if [[ $PYBIN =~ ^(.*)$PY_VER/(.*)$ ]]; then
echo -e "\e[32m >>> \e[0m"
echo -e "\e[32m >>> Preparing a wheel for Python $PYBIN \e[0m"
echo -e "\e[32m >>> \e[0m"

# Bundle external shared libraries into the wheels
for whl in /wheels/*.whl; do
repair_wheel "$whl"
# Compile wheels
"${PYBIN}/pip" wheel /$PACKAGE_NAME/ --no-deps -w /wheels

# Bundle external shared libraries into the wheels
for whl in /wheels/*.whl; do
if [[ $whl =~ ^(.*)$PY_VER-(.*)$ ]] && [[ ! $whl =~ ^(.*)manylinux(.*)$ ]]; then
"${PYBIN}/pip" wheel /$PACKAGE_NAME/ --no-deps -w /wheels
repair_wheel "$whl"
fi
done
fi
done
done

for whl in /wheels/*.whl; do
if [[ ! $whl =~ ^(.*)manylinux(.*)$ ]]; then
rm "$whl"
else
chmod 666 "$whl"
fi
done

rm -rf /pygridgain/*.egg-info
rm -rf /pygridgain/.eggs
chown -R `stat -c "%u:%g" /wheels` /wheels/*

rm -rf /$PACKAGE_NAME/*.egg-info
rm -rf /$PACKAGE_NAME/.eggs
19 changes: 12 additions & 7 deletions scripts/create_distr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@
# limitations under the License.
#

PACKAGE_NAME=pygridgain
DISTR_DIR="$(pwd)/distr/"
SRC_DIR="$(pwd)"
DEFAULT_DOCKER_IMAGE="quay.io/pypa/manylinux2010_x86_64"
PLATFORM_X86="manylinux2014_i686"
PLATFORM_X86_64="manylinux2014_x86_64"
DOCKER_IMAGE_X86="quay.io/pypa/$PLATFORM_X86"
DOCKER_IMAGE_X86_64="quay.io/pypa/$PLATFORM_X86_64"

usage() {
cat <<EOF
Expand Down Expand Up @@ -49,21 +53,21 @@ normalize_path() {

run_wheel_arch() {
if [[ $1 =~ ^(i686|x86)$ ]]; then
PLAT="manylinux1_i686"
PLAT=$PLATFORM_X86
PRE_CMD="linux32"
DOCKER_IMAGE="quay.io/pypa/manylinux2010_i686"
DOCKER_IMAGE=$DOCKER_IMAGE_X86
elif [[ $1 =~ ^(x86_64)$ ]]; then
PLAT="manylinux1_x86_64"
PLAT=$PLATFORM_X86_64
PRE_CMD=""
DOCKER_IMAGE="$DEFAULT_DOCKER_IMAGE"
DOCKER_IMAGE="$DOCKER_IMAGE_X86_64"
else
echo "unsupported architecture $1, only x86(i686) and x86_64 supported"
exit 1
fi

WHEEL_DIR="$DISTR_DIR/$1"
mkdir -p "$WHEEL_DIR"
docker run --rm -e PLAT=$PLAT -v "$SRC_DIR":/pygridgain -v "$WHEEL_DIR":/wheels $DOCKER_IMAGE $PRE_CMD /pygridgain/scripts/build_wheels.sh
docker run --rm -e PLAT=$PLAT -v "$SRC_DIR":/$PACKAGE_NAME -v "$WHEEL_DIR":/wheels $DOCKER_IMAGE $PRE_CMD /$PACKAGE_NAME/scripts/build_wheels.sh
}

while [[ $# -ge 1 ]]; do
Expand All @@ -77,11 +81,12 @@ done

normalize_path

docker run --rm -v "$SRC_DIR":/pygridgain -v "$DISTR_DIR":/dist $DEFAULT_DOCKER_IMAGE /pygridgain/scripts/create_sdist.sh
docker run --rm -v "$SRC_DIR":/$PACKAGE_NAME -v "$DISTR_DIR":/dist $DOCKER_IMAGE_X86_64 /$PACKAGE_NAME/scripts/create_sdist.sh

if [[ -n "$ARCH" ]]; then
run_wheel_arch "$ARCH"
else
run_wheel_arch "x86"
run_wheel_arch "x86_64"
fi

8 changes: 5 additions & 3 deletions scripts/create_sdist.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@

set -e -u -x

PACKAGE_NAME=pygridgain

# Create source dist.
for PYBIN in /opt/python/*/bin; do
if [[ $PYBIN =~ ^(.*)cp39(.*)$ ]] || [[ $PYBIN =~ ^(.*)cp31[0123](.*)$ ]]; then
cd pygridgain
cd $PACKAGE_NAME
"${PYBIN}/python" setup.py sdist --formats=gztar,zip --dist-dir /dist
break;
fi
done

chown -R `stat -c "%u:%g" /dist/` /dist/*

rm -rf /pygridgain/*.egg-info
rm -rf /pygridgain/.eggs
rm -rf /$PACKAGE_NAME/*.egg-info
rm -rf /$PACKAGE_NAME/.eggs