|
14 | 14 | # See the License for the specific language governing permissions and |
15 | 15 | # limitations under the License. |
16 | 16 | # |
17 | | -# Build client-cpp on manylinux2014 (CentOS 7, glibc 2.17 baseline) with devtoolset-8. |
| 17 | +# Build client-cpp for glibc 2.17 baseline (manylinux2014 or CentOS 7 + devtoolset-8). |
18 | 18 | set -euxo pipefail |
19 | 19 |
|
| 20 | +run_maven_build() { |
| 21 | + gcc --version |
| 22 | + cmake --version |
| 23 | + java -version |
| 24 | + cd "${GITHUB_WORKSPACE:?GITHUB_WORKSPACE is not set}" |
| 25 | + ./mvnw clean package -P with-cpp -pl iotdb-client/client-cpp -am -DskipTests \ |
| 26 | + -Dspotless.skip=true \ |
| 27 | + -Dclient.cpp.package.classifier=linux-x86_64-glibc217 |
| 28 | +} |
| 29 | + |
20 | 30 | # CentOS 7 EOL: redirect yum repos to vault.centos.org (see CentOS wiki / SIG SCLo). |
21 | 31 | fix_yum_vault_repos() { |
22 | 32 | local repo |
@@ -59,16 +69,24 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo |
59 | 69 | EOF |
60 | 70 | } |
61 | 71 |
|
62 | | -fix_yum_vault_repos |
63 | | -yum install -y ca-certificates centos-release-scl epel-release |
64 | | -write_sclo_vault_repos |
65 | | -fix_yum_vault_repos |
66 | | -yum clean all |
67 | | -yum makecache -y |
| 72 | +install_centos7_devtoolset8() { |
| 73 | + fix_yum_vault_repos |
| 74 | + yum install -y ca-certificates centos-release-scl epel-release |
| 75 | + write_sclo_vault_repos |
| 76 | + fix_yum_vault_repos |
| 77 | + yum clean all |
| 78 | + yum makecache -y |
| 79 | + yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils \ |
| 80 | + devtoolset-8-libstdc++-devel scl-utils \ |
| 81 | + make wget tar which git patch unzip bzip2 |
| 82 | +} |
68 | 83 |
|
69 | | -yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils \ |
70 | | - devtoolset-8-libstdc++-devel scl-utils \ |
71 | | - make wget tar which git patch unzip bzip2 |
| 84 | +if [[ -x /opt/rh/devtoolset-10/root/usr/bin/gcc ]]; then |
| 85 | + # manylinux2014_x86_64 ships devtoolset-10 on PATH for glibc 2.17-compatible builds. |
| 86 | + yum install -y wget tar which git patch unzip bzip2 || true |
| 87 | +else |
| 88 | + install_centos7_devtoolset8 |
| 89 | +fi |
72 | 90 |
|
73 | 91 | CMAKE_VERSION=3.28.4 |
74 | 92 | CMAKE_DIR=/opt/cmake-${CMAKE_VERSION} |
|
96 | 114 | export PATH="${CMAKE_DIR}/bin:${JAVA_HOME}/bin:${PATH}" |
97 | 115 | export JAVA_HOME |
98 | 116 |
|
99 | | -scl enable devtoolset-8 -- bash -c ' |
100 | | - set -euxo pipefail |
101 | | - gcc --version |
102 | | - cmake --version |
103 | | - java -version |
104 | | - cd "${GITHUB_WORKSPACE:?GITHUB_WORKSPACE is not set}" |
105 | | - ./mvnw clean package -P with-cpp -pl iotdb-client/client-cpp -am -DskipTests \ |
106 | | - -Dspotless.skip=true \ |
107 | | - -Dclient.cpp.package.classifier=linux-x86_64-glibc217 |
108 | | -' |
| 117 | +if [[ -x /opt/rh/devtoolset-10/root/usr/bin/gcc ]]; then |
| 118 | + run_maven_build |
| 119 | +else |
| 120 | + scl enable devtoolset-8 -- bash -c ' |
| 121 | + set -euxo pipefail |
| 122 | + gcc --version |
| 123 | + cmake --version |
| 124 | + java -version |
| 125 | + cd "${GITHUB_WORKSPACE:?GITHUB_WORKSPACE is not set}" |
| 126 | + ./mvnw clean package -P with-cpp -pl iotdb-client/client-cpp -am -DskipTests \ |
| 127 | + -Dspotless.skip=true \ |
| 128 | + -Dclient.cpp.package.classifier=linux-x86_64-glibc217 |
| 129 | + ' |
| 130 | +fi |
109 | 131 |
|
110 | 132 | SO="iotdb-client/client-cpp/target/install/lib/libiotdb_session.so" |
111 | 133 | test -f "${SO}" |
|
0 commit comments