Fix release for python pypi #43
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build TsFile wheels(multi-platform) | |
| on: | |
| push: | |
| branches: | |
| - "release-v2.1.0" | |
| tags: | |
| - 'v*.*.*' | |
| pull_request: | |
| paths: | |
| - "python/**" | |
| - ".github/workflows/**" | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: Build wheels on ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: linux-x86_64 | |
| os: ubuntu-22.04 | |
| platform: linux | |
| cibw_archs_linux: "x86_64" | |
| - name: linux-aarch64 | |
| os: ubuntu-22.04-arm | |
| platform: linux | |
| cibw_archs_linux: "aarch64" | |
| - name: macos-x86_64 | |
| os: macos-13 | |
| platform: macos | |
| cibw_archs_macos: "x86_64" | |
| - name: macos-arm64 | |
| os: macos-14 | |
| platform: macos | |
| cibw_archs_macos: "arm64" | |
| # - name: windows-amd64 | |
| # os: windows-2022 | |
| # platform: windows | |
| # cibw_archs_windows: "AMD64" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "17" | |
| - name: Install system deps (macOS) | |
| if: matrix.platform == 'macos' | |
| run: | | |
| set -eux | |
| brew update | |
| brew install pkg-config || true | |
| - name: Install build tools | |
| run: | | |
| python -m pip install -U pip wheel | |
| python -m pip install cibuildwheel==2.21.3 | |
| # - name: Build C++ core via Maven(win) | |
| # if: matrix.platform == 'windows' | |
| # shell: bash | |
| # run: | | |
| # set -euxo pipefail | |
| # chmod +x mvnw || true | |
| # ./mvnw -Pwith-cpp clean verify package \ | |
| # -DskipTests -Dspotless.check.skip=true -Dspotless.apply.skip=true | |
| # test -d cpp/target/build/lib | |
| # test -d cpp/target/build/include | |
| - name: Build C++ core via Maven (macOS) | |
| if: matrix.platform == 'macos' | |
| shell: bash | |
| env: | |
| MACOSX_DEPLOYMENT_TARGET: "12.0" | |
| CFLAGS: "-mmacosx-version-min=12.0" | |
| CXXFLAGS: "-mmacosx-version-min=12.0" | |
| LDFLAGS: "-mmacosx-version-min=12.0" | |
| run: | | |
| set -euxo pipefail | |
| chmod +x mvnw || true | |
| ./mvnw -Pwith-cpp clean verify package \ | |
| -DskipTests -Dspotless.check.skip=true -Dspotless.apply.skip=true \ | |
| -Dcmake.args="-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0" | |
| otool -l cpp/target/build/lib/libtsfile*.dylib | grep -A2 LC_VERSION_MIN_MACOSX || true | |
| - name: Build wheels via cibuildwheel | |
| if: matrix.platform != 'macos' | |
| env: | |
| CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux }} | |
| # CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_archs_windows }} | |
| CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*" | |
| CIBW_SKIP: "pp* *-musllinux*" | |
| CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014" | |
| CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux2014" | |
| MACOSX_DEPLOYMENT_TARGET: "12.0" | |
| CIBW_BEFORE_ALL_LINUX: | | |
| set -euxo pipefail | |
| if command -v yum >/dev/null 2>&1; then | |
| yum install -y wget tar gzip pkgconfig libuuid-devel libblkid-devel | |
| else | |
| echo "Not a yum-based image?" ; exit 1 | |
| fi | |
| ARCH="$(uname -m)" | |
| mkdir -p /opt/java | |
| if [ "$ARCH" = "x86_64" ]; then | |
| JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz" | |
| else | |
| # aarch64 | |
| JDK_URL="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-aarch64_bin.tar.gz" | |
| fi | |
| curl -L -o /tmp/jdk17.tar.gz "$JDK_URL" | |
| tar -xzf /tmp/jdk17.tar.gz -C /opt/java | |
| export JAVA_HOME=$(echo /opt/java/jdk-17.0.12*) | |
| export PATH="$JAVA_HOME/bin:$PATH" | |
| java -version | |
| chmod +x mvnw || true | |
| ./mvnw -Pwith-cpp clean verify package \ | |
| -DskipTests -Dspotless.check.skip=true -Dspotless.apply.skip=true | |
| test -d cpp/target/build/lib && test -d cpp/target/build/include | |
| CIBW_TEST_COMMAND: > | |
| python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')" | |
| CIBW_BUILD_VERBOSITY: "1" | |
| run: cibuildwheel --output-dir wheelhouse python | |
| - name: Build wheels via cibuildwheel (macOS) | |
| if: matrix.platform == 'macos' | |
| env: | |
| CIBW_ARCHS_MACOS: ${{ matrix.cibw_archs_macos }} | |
| CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*" | |
| # CIBW_BUILD: "cp313-*" | |
| CIBW_SKIP: "pp*" | |
| CIBW_ENVIRONMENT_MACOS: "MACOSX_DEPLOYMENT_TARGET=12.0" | |
| MACOSX_DEPLOYMENT_TARGET: "12.0" | |
| CIBW_TEST_COMMAND: > | |
| python -c "import tsfile, tsfile.tsfile_reader as r; print('import-ok:')" | |
| CIBW_BUILD_VERBOSITY: "1" | |
| run: cibuildwheel --output-dir wheelhouse python | |
| - name: Upload wheels as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: tsfile-wheels-${{ matrix.name }} | |
| path: wheelhouse/*.whl | |