#!/bin/bash set -ex # change to repo root pushd $(dirname $0)/../../../.. # Create stage dir ORIGINAL_DIR=`pwd` pushd .. cp -R $ORIGINAL_DIR stage export STAGE_DIR="`pwd`/stage" popd export REPO_DIR=protobuf export BUILD_VERSION=`grep -i "version" python/google/protobuf/__init__.py | grep -o "'.*'" | tr -d "'"` export BUILD_COMMIT=`git rev-parse HEAD` export PLAT=x86_64 export UNICODE_WIDTH=32 export MACOSX_DEPLOYMENT_TARGET=10.9 rm -rf artifacts/ rm -rf multibuild/ mkdir artifacts export ARTIFACT_DIR=$(pwd)/artifacts git clone https://github.com/matthew-brett/multibuild.git # Pin multibuild scripts at a known commit to avoid potentially unwanted future changes from # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # IMPORTANT: always pin multibuild at the same commit for: # - linux/build_artifacts.sh # - linux/build_artifacts.sh # - windows/build_artifacts.bat (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) cp kokoro/release/python/linux/config.sh config.sh build_artifact_version() { MB_PYTHON_VERSION=$1 cp -R $STAGE_DIR $REPO_DIR source multibuild/common_utils.sh source multibuild/travis_steps.sh before_install clean_code $REPO_DIR $BUILD_COMMIT build_wheel $REPO_DIR/python $PLAT mv wheelhouse/* $ARTIFACT_DIR # Clean up env rm -rf venv sudo rm -rf $REPO_DIR } build_x86_64_manylinux1_artifact_version() { # Explicitly request building manylinux1 wheels, which is no longer the default. # https://github.com/protocolbuffers/protobuf/issues/9180 MB_ML_VER=1 build_artifact_version $@ } build_x86_64_manylinux2010_artifact_version() { # Explicitly request building manylinux2010 wheels MB_ML_VER=2010 build_artifact_version $@ } build_crosscompiled_aarch64_manylinux2014_artifact_version() { # crosscompilation is only supported with the dockcross manylinux2014 image DOCKER_IMAGE=dockcross/manylinux2014-aarch64:20210706-65bf2dd MB_ML_VER=2014 PLAT=aarch64 # TODO(jtatermusch): currently when crosscompiling, "auditwheel repair" will be disabled # since auditwheel doesn't work for crosscomiled wheels. build_artifact_version $@ } build_x86_64_manylinux1_artifact_version 3.6 build_x86_64_manylinux1_artifact_version 3.7 build_x86_64_manylinux1_artifact_version 3.8 build_x86_64_manylinux1_artifact_version 3.9 build_x86_64_manylinux2010_artifact_version 3.10 build_crosscompiled_aarch64_manylinux2014_artifact_version 3.7 build_crosscompiled_aarch64_manylinux2014_artifact_version 3.8 build_crosscompiled_aarch64_manylinux2014_artifact_version 3.9 build_crosscompiled_aarch64_manylinux2014_artifact_version 3.10