You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2022/09/30 18:53:14 UTC

[pulsar-client-cpp] branch main updated: Fixed RPM / Deb / APK packages and enabled CI build (#11)

This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new 40c7406  Fixed RPM / Deb / APK packages and enabled CI build (#11)
40c7406 is described below

commit 40c7406cb587906d3a07f7ddb59256d17ea4c67c
Author: Matteo Merli <mm...@apache.org>
AuthorDate: Fri Sep 30 11:53:10 2022 -0700

    Fixed RPM / Deb / APK packages and enabled CI build (#11)
    
    * Fixed RPM / Deb / APK packages and enabled CI build
    
    * Fixed main branch name
    
    * Tweaking ci job
    
    * Fixed lib names
    
    * Fixed RPM path
    
    * Fixed vcpkg cache path
---
 .github/workflows/ci-pr-validation.yaml            | 201 +++++++++++++++++++++
 .gitignore                                         |   6 +
 .../generate-source-archive.sh                     |  10 +-
 docker-build-centos7.sh                            |   8 +-
 pkg/apk/.gitignore                                 |   1 +
 pkg/apk/APKBUILD                                   |   7 +-
 pkg/apk/build-apk.sh                               |  17 +-
 pkg/apk/docker-build-apk.sh                        |   4 +-
 pkg/deb/build-deb.sh                               |  23 +--
 pkg/deb/docker-build-deb.sh                        |  15 +-
 pkg/rpm/Dockerfile                                 |   2 +-
 pkg/rpm/SPECS/pulsar-client.spec                   |  21 +--
 pkg/rpm/build-rpm.sh                               |   8 +-
 pkg/rpm/docker-build-rpm.sh                        |  15 +-
 14 files changed, 263 insertions(+), 75 deletions(-)

diff --git a/.github/workflows/ci-pr-validation.yaml b/.github/workflows/ci-pr-validation.yaml
new file mode 100644
index 0000000..e0a9c7f
--- /dev/null
+++ b/.github/workflows/ci-pr-validation.yaml
@@ -0,0 +1,201 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: CI - C++ Build - PR validation
+on:
+  pull_request:
+    branches:
+      - main
+  push:
+    branches:
+      - main
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+
+  cpp-build-centos7:
+    name: Build CPP Client on CentOS7
+    runs-on: ubuntu-20.04
+    timeout-minutes: 120
+
+    steps:
+      - name: checkout
+        uses: actions/checkout@v2
+
+      - name: build cpp client on centos 7
+        run: |
+          echo "Build C++ client library on CentOS 7"
+          ./docker-build-centos7.sh
+
+  cpp-build-windows:
+    timeout-minutes: 120
+    name: Build CPP Client on ${{ matrix.name }}
+    runs-on: ${{ matrix.os }}
+    env:
+      VCPKG_ROOT: '${{ github.workspace }}/vcpkg'
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - name: 'Windows x64'
+            os: windows-2022
+            triplet: x64-windows
+            vcpkg_dir: 'C:\vcpkg'
+            suffix: 'windows-win64'
+            generator: 'Visual Studio 17 2022'
+            arch: '-A x64'
+          - name: 'Windows x86'
+            os: windows-2022
+            triplet: x86-windows
+            vcpkg_dir: 'C:\vcpkg'
+            suffix: 'windows-win32'
+            generator: 'Visual Studio 17 2022'
+            arch: '-A Win32'
+
+    steps:
+      - name: checkout
+        uses: actions/checkout@v2
+
+      - name: Restore vcpkg and its artifacts.
+        uses: actions/cache@v2
+        id: vcpkg-cache
+        with:
+          path: |
+            ${{ env.VCPKG_ROOT }}
+            vcpkg_installed
+            !${{ env.VCPKG_ROOT }}/.git
+            !${{ env.VCPKG_ROOT }}/buildtrees
+            !${{ env.VCPKG_ROOT }}/packages
+            !${{ env.VCPKG_ROOT }}/downloads
+          key: |
+            ${{ runner.os }}-${{ matrix.triplet}}-${{ hashFiles( 'pulsar-client-cpp/vcpkg.json' ) }}
+
+      - name: Get vcpkg(windows)
+        if: ${{ runner.os == 'Windows' && steps.vcpkg-cache.outputs.cache-hit != 'true' }}
+        run: |
+          cd ${{ github.workspace }}
+          mkdir build -force
+          git clone https://github.com/Microsoft/vcpkg.git
+          cd vcpkg
+          .\bootstrap-vcpkg.bat
+
+      - name: remove system vcpkg(windows)
+        if: runner.os == 'Windows'
+        run: rm -rf "$VCPKG_INSTALLATION_ROOT"
+        shell: bash
+
+      - name: Install vcpkg packages
+        run: |
+          ${{ env.VCPKG_ROOT }}\vcpkg.exe install --triplet ${{ matrix.triplet }}
+
+      - name: Configure (default)
+
+        shell: bash
+        run: |
+          if [ "$RUNNER_OS" == "Windows" ]; then
+            cmake \
+              -B ./build-0 \
+              -G "${{ matrix.generator }}" ${{ matrix.arch }} \
+              -DBUILD_TESTS=OFF \
+              -DVCPKG_TRIPLET=${{ matrix.triplet }} \
+              -DCMAKE_BUILD_TYPE=Release \
+              -S .
+          fi
+
+      - name: Compile
+        shell: bash
+        run: |
+          if [ "$RUNNER_OS" == "Windows" ]; then
+            cmake --build ./build-0 --parallel --config Release
+          fi
+
+      - name: Configure (dynamic library only)
+        shell: bash
+        run: |
+          if [ "$RUNNER_OS" == "Windows" ]; then
+            cmake \
+              -B ./build-1 \
+              -G "${{ matrix.generator }}" ${{ matrix.arch }} \
+              -DBUILD_TESTS=OFF \
+              -DVCPKG_TRIPLET=${{ matrix.triplet }} \
+              -DCMAKE_BUILD_TYPE=Release \
+              -DBUILD_STATIC_LIB=OFF \
+              -S .
+          fi
+
+      - name: Compile
+        shell: bash
+        run: |
+          if [ "$RUNNER_OS" == "Windows" ]; then
+            cmake --build ./build-1 --parallel --config Release
+          fi
+
+  deb-packaging:
+    name: Build Debian Package
+    runs-on: ubuntu-20.04
+    timeout-minutes: 120
+
+    steps:
+      - name: checkout
+        uses: actions/checkout@v2
+
+      - name: Package Pulsar source
+        run: build-support/generate-source-archive.sh
+
+      - name: Build Debian packages
+        run: |
+          echo "Build Debian packages"
+          BUILD_IMAGE=1 pkg/deb/docker-build-deb.sh
+
+  rpm-packaging:
+    name: Build RPM Package
+    runs-on: ubuntu-20.04
+    timeout-minutes: 120
+
+    steps:
+      - name: checkout
+        uses: actions/checkout@v2
+
+      - name: Package Pulsar source
+        run: build-support/generate-source-archive.sh
+
+      - name: Build RPM packages
+        run: |
+          echo "Build RPM packages"
+          BUILD_IMAGE=1 pkg/rpm/docker-build-rpm.sh
+
+#  apk-packaging:
+#    name: Build Alpine Linux APK Package
+#    runs-on: ubuntu-20.04
+#    timeout-minutes: 120
+#
+#    steps:
+#      - name: checkout
+#        uses: actions/checkout@v2
+#
+#      - name: Package Pulsar source
+#        run: build-support/generate-source-archive.sh
+#
+#      - name: Build APK packages
+#        run: |
+#          echo "Build APK packages"
+#          BUILD_IMAGE=1 pkg/apk/docker-build-apk.sh
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 8c8c065..5b3f666 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,8 @@ lib*.so*
 # Linux swap file
 *.swp
 
+apache-pulsar-client-cpp-*.tar.gz
+
 # Exclude compiled executables
 /examples/SampleProducer
 /examples/SampleProducerCApi
@@ -89,3 +91,7 @@ CMakeSettings.json
 
 # vcpkg dependencies directory
 vcpkg_installed/
+
+
+*.orig
+*.rej
diff --git a/pkg/apk/docker-build-apk.sh b/build-support/generate-source-archive.sh
similarity index 83%
copy from pkg/apk/docker-build-apk.sh
copy to build-support/generate-source-archive.sh
index e458d4a..d88f081 100755
--- a/pkg/apk/docker-build-apk.sh
+++ b/build-support/generate-source-archive.sh
@@ -18,12 +18,10 @@
 # under the License.
 #
 
-set -e
-
 ROOT_DIR=$(git rev-parse --show-toplevel)
-IMAGE=apachepulsar/pulsar-build:alpine-3.11
 
-docker pull $IMAGE
+VERSION=$(cat ${ROOT_DIR}/version.txt)
+
+NAME=apache-pulsar-client-cpp-$VERSION
 
-docker run -i -v $ROOT_DIR:/pulsar $IMAGE \
-        /pulsar/pulsar-client-cpp/pkg/apk/build-apk.sh
+git archive --format=tar.gz --prefix ${NAME}/ -o ${NAME}.tar.gz HEAD
diff --git a/docker-build-centos7.sh b/docker-build-centos7.sh
index f93d379..4996e4f 100755
--- a/docker-build-centos7.sh
+++ b/docker-build-centos7.sh
@@ -23,15 +23,15 @@
 set -e
 
 ROOT_DIR=$(git rev-parse --show-toplevel)
-cd $ROOT_DIR/pulsar-client-cpp
+cd $ROOT_DIR
 
 IMAGE="${BUILD_IMAGE_NAME:-apachepulsar/pulsar-cpp-build-centos7}"
 
 docker pull "${IMAGE}"
 
-VOLUME_OPTION=${VOLUME_OPTION:-"-v $ROOT_DIR:/pulsar"}
-COMMAND="cd /pulsar/pulsar-client-cpp && mkdir -p _builds && cd _builds &&
- /opt/cmake/cmake-3.4.0-Linux-x86_64/bin/cmake .. -DBUILD_PYTHON_WRAPPER=OFF -DBUILD_TESTS=ON && make -j8"
+VOLUME_OPTION=${VOLUME_OPTION:-"-v $ROOT_DIR:/pulsar-client-cpp"}
+COMMAND="cd /pulsar-client-cpp && mkdir -p _builds && cd _builds &&
+ /opt/cmake/cmake-3.4.0-Linux-x86_64/bin/cmake .. -DBUILD_TESTS=ON && make -j8"
 
 DOCKER_CMD="docker run -i ${VOLUME_OPTION} ${IMAGE}"
 
diff --git a/pkg/apk/.gitignore b/pkg/apk/.gitignore
index 7012f3a..842209a 100644
--- a/pkg/apk/.gitignore
+++ b/pkg/apk/.gitignore
@@ -2,3 +2,4 @@ pkg
 perf
 examples
 lib
+src
diff --git a/pkg/apk/APKBUILD b/pkg/apk/APKBUILD
index 10bdd72..e3ae244 100644
--- a/pkg/apk/APKBUILD
+++ b/pkg/apk/APKBUILD
@@ -20,7 +20,7 @@
 # Maintainer: "Apache Pulsar <de...@pulsar.apache.org>"
 
 pkgname="apache-pulsar-client"
-pkgver="$POM_VERSION"
+pkgver="$VERSION"
 pkgrel=0
 pkgdesc="Apache Pulsar - distributed pub-sub messaging system"
 url="https://pulsar.apache.org"
@@ -46,9 +46,8 @@ build() {
 		-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
 		-DCMAKE_C_FLAGS="$CFLAGS" \
 		-DBUILD_TESTS=OFF \
-    -DBUILD_PYTHON_WRAPPER=OFF \
-    -DLINK_STATIC=ON  \
-		${CMAKE_CROSSOPTS} ${SRC_ROOT_DIR}/pulsar-client-cpp
+                -DLINK_STATIC=ON  \
+		${CMAKE_CROSSOPTS} ${ROOT_DIR}
 	make
 }
 
diff --git a/pkg/apk/build-apk.sh b/pkg/apk/build-apk.sh
index c316d18..b31a131 100755
--- a/pkg/apk/build-apk.sh
+++ b/pkg/apk/build-apk.sh
@@ -20,14 +20,21 @@
 
 set -e -x
 
-export SRC_ROOT_DIR=$(git rev-parse --show-toplevel)
-cd $SRC_ROOT_DIR/pulsar-client-cpp/pkg/apk
+cd /pulsar-client-cpp
+export ROOT_DIR=$(pwd)
 
-VERSION=`python3 $SRC_ROOT_DIR/src/get-project-version.py`
+rm -f CMakeCache.txt
+rm -rf CMakeFiles
+
+cd $ROOT_DIR/pkg/apk
+
+
+
+POM_VERSION=`cat $ROOT_DIR/version.txt | xargs`
 # Sanitize the version string
-export POM_VERSION=`echo $VERSION | sed -E 's/-[a-z]+-/./' | sed -E 's/.[A-Z]+././'`
+export VERSION=`echo $POM_VERSION | sed -E 's/\-[a-zA-Z]+//'`
 
-echo "POM_VERSION: $POM_VERSION"
+echo "VERSION: $VERSION"
 
 abuild-keygen -a -i -n
 chmod 755 ~
diff --git a/pkg/apk/docker-build-apk.sh b/pkg/apk/docker-build-apk.sh
index e458d4a..c400c7d 100755
--- a/pkg/apk/docker-build-apk.sh
+++ b/pkg/apk/docker-build-apk.sh
@@ -25,5 +25,5 @@ IMAGE=apachepulsar/pulsar-build:alpine-3.11
 
 docker pull $IMAGE
 
-docker run -i -v $ROOT_DIR:/pulsar $IMAGE \
-        /pulsar/pulsar-client-cpp/pkg/apk/build-apk.sh
+docker run -i -v $ROOT_DIR:/pulsar-client-cpp $IMAGE \
+        /pulsar-client-cpp/pkg/apk/build-apk.sh
diff --git a/pkg/deb/build-deb.sh b/pkg/deb/build-deb.sh
index b7409de..5835714 100755
--- a/pkg/deb/build-deb.sh
+++ b/pkg/deb/build-deb.sh
@@ -20,28 +20,28 @@
 
 set -e -x
 
-cd /pulsar
+cd /pulsar-client-cpp
 SRC_ROOT_DIR=$(pwd)
-cd $SRC_ROOT_DIR/pulsar-client-cpp/pkg/deb
+cd pkg/deb
 
-POM_VERSION=`$SRC_ROOT_DIR/src/get-project-version.py`
+POM_VERSION=`cat $SRC_ROOT_DIR/version.txt | xargs`
 # Sanitize VERSION by removing `SNAPSHOT` if any since it's not legal in DEB
 VERSION=`echo $POM_VERSION | awk -F-  '{print $1}'`
 
-ROOT_DIR=apache-pulsar-$POM_VERSION-src
-CPP_DIR=$ROOT_DIR/pulsar-client-cpp
+ROOT_DIR=apache-pulsar-client-cpp-$POM_VERSION
+CPP_DIR=$ROOT_DIR
 
 rm -rf BUILD
 mkdir BUILD
 cd BUILD
-tar xfz $SRC_ROOT_DIR/target/apache-pulsar-$POM_VERSION-src.tar.gz
+tar xfz $SRC_ROOT_DIR/apache-pulsar-client-cpp-$POM_VERSION.tar.gz
 pushd $CPP_DIR
 
 # link libraries for protoc
 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
 
 chmod +x $(find . -name "*.sh")
-cmake . -DBUILD_TESTS=OFF -DBUILD_PYTHON_WRAPPER=OFF -DBUILD_PERF_TOOLS=OFF -DLINK_STATIC=ON
+cmake . -DBUILD_TESTS=OFF -DBUILD_PERF_TOOLS=OFF -DLINK_STATIC=ON
 make pulsarShared pulsarSharedNossl pulsarStatic pulsarStaticWithDeps  -j 3
 popd
 
@@ -77,13 +77,8 @@ ls $CPP_DIR/lib/libpulsar*
 cp -ar $CPP_DIR/include/pulsar $DEVEL_DEST_DIR/usr/include/
 cp $CPP_DIR/lib/libpulsar.a $DEVEL_DEST_DIR/usr/lib
 cp $CPP_DIR/lib/libpulsarwithdeps.a $DEVEL_DEST_DIR/usr/lib
-cp $CPP_DIR/lib/libpulsar.so.$POM_VERSION $DEST_DIR/usr/lib
-cp $CPP_DIR/lib/libpulsarnossl.so.$POM_VERSION $DEST_DIR/usr/lib
-
-pushd $DEST_DIR/usr/lib
-ln -s libpulsar.so.$POM_VERSION libpulsar.so
-ln -s libpulsarnossl.so.$POM_VERSION libpulsarnossl.so
-popd
+cp $CPP_DIR/lib/libpulsar.so $DEST_DIR/usr/lib
+cp $CPP_DIR/lib/libpulsarnossl.so $DEST_DIR/usr/lib
 
 cp $ROOT_DIR/NOTICE $DEST_DIR/usr/share/doc/pulsar-client-$VERSION
 cp $CPP_DIR/pkg/licenses/* $DEST_DIR/usr/share/doc/pulsar-client-$VERSION
diff --git a/pkg/deb/docker-build-deb.sh b/pkg/deb/docker-build-deb.sh
index bc7f422..85e4cef 100755
--- a/pkg/deb/docker-build-deb.sh
+++ b/pkg/deb/docker-build-deb.sh
@@ -20,15 +20,10 @@
 
 set -ex
 
-ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../.. &> /dev/null && pwd )"
-IMAGE_NAME=apachepulsar/pulsar-build:debian-9-2.11
+ROOT_DIR=$(git rev-parse --show-toplevel)
 
-if [[ -z $BUILD_IMAGE ]]; then
-    # pull the image from DockerHub by default
-    docker pull $IMAGE_NAME
-else
-    docker build --platform linux/amd64 -t $IMAGE_NAME $ROOT_DIR/pulsar-client-cpp/pkg/deb
-fi
+IMAGE_NAME=apachepulsar/pulsar-build:debian-9-2.11-x86_64
 
-docker run --platform linux/amd64 -v $ROOT_DIR:/pulsar $IMAGE_NAME \
-        /pulsar/pulsar-client-cpp/pkg/deb/build-deb.sh
+docker pull $IMAGE_NAME
+docker run -v $ROOT_DIR:/pulsar-client-cpp $IMAGE_NAME \
+        /pulsar-client-cpp/pkg/deb/build-deb.sh
diff --git a/pkg/rpm/Dockerfile b/pkg/rpm/Dockerfile
index 9e4a057..246ca23 100644
--- a/pkg/rpm/Dockerfile
+++ b/pkg/rpm/Dockerfile
@@ -19,7 +19,7 @@
 
 # Build pulsar client library in Centos with tools to build static RPM
 
-FROM --platform=linux/amd64 centos:7
+FROM centos:7
 
 RUN yum update -y && \
     yum install -y gcc-c++ make rpm-build which \
diff --git a/pkg/rpm/SPECS/pulsar-client.spec b/pkg/rpm/SPECS/pulsar-client.spec
index b23fd41..b4ae946 100644
--- a/pkg/rpm/SPECS/pulsar-client.spec
+++ b/pkg/rpm/SPECS/pulsar-client.spec
@@ -28,7 +28,7 @@ License:        Apache License v2
 Name:           %{name}
 Version:        %{version}
 Release:        %{release}
-Source:         apache-pulsar-%{pom_version}-src.tar.gz
+Source:         apache-pulsar-client-cpp-%{pom_version}.tar.gz
 Prefix:         /usr
 AutoReq:        no
 
@@ -49,16 +49,13 @@ The devel package contains C++ and C API headers and `libpulsar.a`
 static library.
 
 %prep
-%setup -q -n apache-pulsar-%{pom_version}-src
+%setup -q -n apache-pulsar-client-cpp-%{pom_version}
 
 %build
-cd pulsar-client-cpp
-chmod +x $(find . -name "*.sh")
-cmake . -DBUILD_TESTS=OFF -DLINK_STATIC=ON -DBUILD_PYTHON_WRAPPER=OFF
+cmake . -DBUILD_TESTS=OFF -DLINK_STATIC=ON
 make pulsarShared pulsarSharedNossl pulsarStatic pulsarStaticWithDeps -j 3
 
 %install
-cd pulsar-client-cpp
 INCLUDE_DIR=$RPM_BUILD_ROOT/usr/include
 LIB_DIR=$RPM_BUILD_ROOT/usr/lib
 DOC_DIR=$RPM_BUILD_ROOT/usr/share/doc/pulsar-client-%{version}
@@ -68,25 +65,19 @@ mkdir -p $INCLUDE_DIR $LIB_DIR $DOC_DIR $DOC_DEVEL_DIR
 cp -ar include/pulsar $INCLUDE_DIR
 cp lib/libpulsar.a $LIB_DIR
 cp lib/libpulsarwithdeps.a $LIB_DIR
-cp lib/libpulsar.so.%{pom_version} $LIB_DIR
-cp lib/libpulsarnossl.so.%{pom_version} $LIB_DIR
+cp lib/libpulsar.so $LIB_DIR
+cp lib/libpulsarnossl.so $LIB_DIR
 
 # Copy LICENSE files
-cp ../NOTICE $DOC_DIR
+cp NOTICE $DOC_DIR
 cp pkg/licenses/* $DOC_DIR
 
 cp $DOC_DIR/* $DOC_DEVEL_DIR/
 
-cd  $LIB_DIR
-ln -s libpulsar.so.%{pom_version} libpulsar.so
-ln -s libpulsarnossl.so.%{pom_version} libpulsarnossl.so
-
 %files
 %defattr(-,root,root)
 /usr/lib/libpulsar.so
-/usr/lib/libpulsar.so.%{pom_version}
 /usr/lib/libpulsarnossl.so
-/usr/lib/libpulsarnossl.so.%{pom_version}
 /usr/share/doc/pulsar-client-%{version}
 
 %files devel
diff --git a/pkg/rpm/build-rpm.sh b/pkg/rpm/build-rpm.sh
index 97647a1..977ae72 100755
--- a/pkg/rpm/build-rpm.sh
+++ b/pkg/rpm/build-rpm.sh
@@ -20,18 +20,18 @@
 
 set -e
 
-cd /pulsar
+cd /pulsar-client-cpp
 ROOT_DIR=$(pwd)
-cd $ROOT_DIR/pulsar-client-cpp/pkg/rpm
+cd $ROOT_DIR/pkg/rpm
 
-POM_VERSION=`$ROOT_DIR/src/get-project-version.py`
+POM_VERSION=`cat $ROOT_DIR/version.txt | xargs`
 
 # Sanitize VERSION by removing `-incubating` since it's not legal in RPM
 VERSION=`echo $POM_VERSION | awk -F-  '{print $1}'`
 
 mkdir -p BUILD RPMS SOURCES SPECS SRPMS
 
-cp $ROOT_DIR/target/apache-pulsar-$POM_VERSION-src.tar.gz SOURCES
+cp $ROOT_DIR/apache-pulsar-client-cpp-$POM_VERSION.tar.gz SOURCES
 
 rpmbuild -v -bb --clean \
         --define "version $VERSION" \
diff --git a/pkg/rpm/docker-build-rpm.sh b/pkg/rpm/docker-build-rpm.sh
index 4ba02af..3c50a51 100755
--- a/pkg/rpm/docker-build-rpm.sh
+++ b/pkg/rpm/docker-build-rpm.sh
@@ -20,15 +20,10 @@
 
 set -ex
 
-ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../../.. &> /dev/null && pwd )"
-IMAGE_NAME=apachepulsar/pulsar-build:centos-7-2.11
+ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. &> /dev/null && pwd )"
+IMAGE_NAME=apachepulsar/pulsar-build:centos-7-2.11-x86_64
 
-if [[ -z $BUILD_IMAGE ]]; then
-    # pull the image from DockerHub by default
-    docker pull $IMAGE_NAME
-else
-    docker build --platform linux/amd64 -t $IMAGE_NAME $ROOT_DIR/pulsar-client-cpp/pkg/rpm
-fi
+docker pull $IMAGE_NAME
 
-docker run --platform linux/amd64 -v $ROOT_DIR:/pulsar $IMAGE_NAME \
-        /pulsar/pulsar-client-cpp/pkg/rpm/build-rpm.sh
+docker run -v $ROOT_DIR:/pulsar-client-cpp $IMAGE_NAME \
+        /pulsar-client-cpp/pkg/rpm/build-rpm.sh