diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de0288dfe58a..7e0e496239a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,21 +32,37 @@ jobs: os: ubuntu-2004-16-cores file: greptime-linux-amd64 continue-on-error: false - opts: "-F pyo3_backend" - arch: aarch64-unknown-linux-gnu os: ubuntu-2004-16-cores file: greptime-linux-arm64 continue-on-error: false - opts: "-F pyo3_backend" - arch: aarch64-apple-darwin os: macos-latest file: greptime-darwin-arm64 continue-on-error: false - opts: "-F pyo3_backend" - arch: x86_64-apple-darwin os: macos-latest file: greptime-darwin-amd64 continue-on-error: false + - arch: x86_64-unknown-linux-gnu + os: ubuntu-2004-16-cores + file: greptime-linux-amd64-pyo3 + continue-on-error: false + opts: "-F pyo3_backend" + - arch: aarch64-unknown-linux-gnu + os: ubuntu-2004-16-cores + file: greptime-linux-arm64-pyo3 + continue-on-error: false + opts: "-F pyo3_backend" + - arch: aarch64-apple-darwin + os: macos-latest + file: greptime-darwin-arm64-pyo3 + continue-on-error: false + opts: "-F pyo3_backend" + - arch: x86_64-apple-darwin + os: macos-latest + file: greptime-darwin-amd64-pyo3 + continue-on-error: false opts: "-F pyo3_backend" runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.continue-on-error }} @@ -105,8 +121,8 @@ jobs: sudo apt-get -y update sudo apt-get -y install libssl-dev pkg-config g++-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu wget - - name: Compile Python 3.10.10 from source for Aarch64 - if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') + - name: Compile Python 3.10.10 from source for aarch64-linux + if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') && contains(matrix.opts, 'pyo3_backend') run: | sudo chmod +x ./docker/aarch64/compile-python.sh sudo ./docker/aarch64/compile-python.sh @@ -124,8 +140,8 @@ jobs: if: env.DISABLE_RUN_TESTS == 'false' run: make unit-test integration-test sqlness-test - - name: Run cargo build for aarch64-linux - if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') + - name: Run cargo build with pyo3 for aarch64-linux + if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') && contains(matrix.opts, 'pyo3_backend') run: | # TODO(zyy17): We should make PYO3_CROSS_LIB_DIR configurable. export PYO3_CROSS_LIB_DIR=$(pwd)/python_arm64_build/lib @@ -134,7 +150,7 @@ jobs: cargo build --profile ${{ env.CARGO_PROFILE }} --locked --target ${{ matrix.arch }} ${{ matrix.opts }} - name: Run cargo build - if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') == false + if: contains(matrix.arch, 'aarch64-unknown-linux-gnu') == false || contains(matrix.opts, 'pyo3_backend') == false run: cargo build --profile ${{ env.CARGO_PROFILE }} --locked --target ${{ matrix.arch }} ${{ matrix.opts }} - name: Calculate checksum and rename binary @@ -196,20 +212,20 @@ jobs: - name: Download amd64 binary uses: actions/download-artifact@v3 with: - name: greptime-linux-amd64 + name: greptime-linux-amd64-pyo3 path: amd64 - name: Unzip the amd64 artifacts run: | cd amd64 - tar xvf greptime-linux-amd64.tgz - rm greptime-linux-amd64.tgz + tar xvf greptime-linux-amd64-pyo3.tgz + rm greptime-linux-amd64-pyo3.tgz - name: Download arm64 binary id: download-arm64 uses: actions/download-artifact@v3 with: - name: greptime-linux-arm64 + name: greptime-linux-arm64-pyo3 path: arm64 - name: Unzip the arm64 artifacts @@ -217,8 +233,8 @@ jobs: if: success() || steps.download-arm64.conclusion == 'success' run: | cd arm64 - tar xvf greptime-linux-arm64.tgz - rm greptime-linux-arm64.tgz + tar xvf greptime-linux-arm64-pyo3.tgz + rm greptime-linux-arm64-pyo3.tgz - name: Build and push all uses: docker/build-push-action@v3 diff --git a/docker/ci/Dockerfile b/docker/ci/Dockerfile index 5e26a8db7561..9ae0d0879cb3 100644 --- a/docker/ci/Dockerfile +++ b/docker/ci/Dockerfile @@ -1,6 +1,12 @@ FROM ubuntu:22.04 -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install ca-certificates +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + ca-certificates \ + python3.10 \ + python3.10-dev \ + python3-pip + +RUN python3 -m pip install pyarrow ARG TARGETARCH