feat(stonedb): To support unspecify the location of 3rd libs(#12). (#… #55
This file contains 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: Compile & MTR | |
on: | |
push: | |
branches-ignore: | |
- main | |
paths-ignore: | |
- 'docs/**' | |
- 'website/**' | |
- '**.md' | |
- 'scripts/setup/**' | |
- '.devcontainer/**' | |
pull_request: | |
paths-ignore: | |
- 'Docs/**' | |
- 'website/**' | |
- '**.md' | |
- 'scripts/**' | |
- 'install_scripts/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
PROTOC: protoc | |
jobs: | |
stonedb-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install prerequisites | |
run: | | |
sudo apt-get update | |
sudo apt-get install cmake make perl bison libaio-dev \ | |
openssl libssl-dev libncurses5-dev libreadline-dev \ | |
autoconf automake libtool \ | |
libreadline-dev libpam0g-dev zlib1g-dev libcurl-ocaml-dev \ | |
autotools-dev libicu-dev libboost-all-dev \ | |
libgflags-dev libsnappy-dev libbz2-dev liblz4-dev libzstd-dev libjemalloc-dev -y | |
sudo mkdir -p /stonedb56/install/tmp | |
sudo mkdir -p /stonedb56/install/log | |
sudo mkdir ./soft | |
- name: install marisa | |
run: | | |
sudo mkdir -p ./soft/marisa-trie | |
sudo mkdir -p /usr/local/stonedb-marisa | |
sudo git clone https://github.com/s-yata/marisa-trie.git ./soft/marisa-trie | |
pushd ./soft/marisa-trie | |
sudo autoreconf -i | |
sudo ./configure --enable-native-code --prefix=/usr/local/stonedb-marisa | |
sudo make -j`nproc` | |
sudo make install -j`nproc` | |
popd | |
- name: install rocksdb | |
run: | | |
sudo wget -c https://github.com/facebook/rocksdb/archive/refs/tags/v6.12.6.tar.gz -O ./soft/rocksdb-6.12.6.tar.gz | |
sudo tar zxvf ./soft/rocksdb-6.12.6.tar.gz -C ./soft | |
sudo mkdir -p /usr/local/stonedb-gcc-rocksdb | |
pushd ./soft/rocksdb-6.12.6 | |
sudo cmake ./ \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_INSTALL_PREFIX=/usr/local/stonedb-gcc-rocksdb \ | |
-DCMAKE_INSTALL_LIBDIR=/usr/local/stonedb-gcc-rocksdb \ | |
-DWITH_JEMALLOC=ON \ | |
-DWITH_SNAPPY=ON \ | |
-DWITH_LZ4=ON \ | |
-DWITH_ZLIB=ON \ | |
-DWITH_ZSTD=ON \ | |
-DUSE_RTTI=ON \ | |
-DROCKSDB_BUILD_SHARED=ON \ | |
-DWITH_GFLAGS=OFF \ | |
-DWITH_TOOLS=OFF \ | |
-DWITH_BENCHMARK_TOOLS=OFF \ | |
-DWITH_CORE_TOOLS=OFF | |
sudo make -j`nproc` | |
sudo make install -j`nproc` | |
popd | |
- name: install boost | |
run: | | |
sudo wget -c https://boostorg.jfrog.io/artifactory/main/release/1.66.0/source/boost_1_66_0.tar.bz2 -O ./soft/boost_1_66_0.tar.bz2 | |
sudo tar -jxvf ./soft/boost_1_66_0.tar.bz2 -C ./soft | |
sudo mkdir -p /usr/local/stonedb-boost | |
#for boost warning: Unnecessary parenthesis warning in gcc-8.0.0 or higher. | |
sudo sed -i '1 i #define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER' ./soft/boost_1_66_0/boost/mpl/assert.hpp | |
pushd ./soft/boost_1_66_0 | |
sudo ./bootstrap.sh --prefix=/usr/local/stonedb-boost | |
#in lib python, builtin_converters.cpp:51:35: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive] | |
#therefore, the simplest way to supress this error is 'DO NOT BUILD'-python libs. | |
sudo ./b2 install --variant=release --without-python | |
popd | |
- name: compile stonedb | |
run: | | |
sudo cmake ./ \ | |
-DWITH_BOOST=/usr/local/stonedb-boost \ | |
-DWITH_ROCKSDB=/usr/local/stonedb-gcc-rocksdb \ | |
-DWITH_MARISA=/usr/local/stonedb-marisa \ | |
-DCMAKE_BUILD_TYPE=release \ | |
-DCMAKE_INSTALL_PREFIX=/stonedb56/install \ | |
-DMYSQL_DATADIR=/stonedb56/install/data \ | |
-DSYSCONFDIR=/stonedb56/install \ | |
-DMYSQL_UNIX_ADDR=/stonedb56/install/tmp/mysql.sock \ | |
-DWITH_EMBEDDED_SERVER=OFF \ | |
-DWITH_STONEDB_STORAGE_ENGINE=1 \ | |
-DWITH_MYISAM_STORAGE_ENGINE=1 \ | |
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ | |
-DWITH_PARTITION_STORAGE_ENGINE=1 \ | |
-DMYSQL_TCP_PORT=3306 \ | |
-DENABLED_LOCAL_INFILE=1 \ | |
-DEXTRA_CHARSETS=all \ | |
-DDEFAULT_CHARSET=utf8 \ | |
-DDEFAULT_COLLATION=utf8_general_ci | |
sudo make VERBOSE=1 -j`nproc` | |
sudo make install -j`nproc` | |
- name: mtr test | |
run: | | |
sudo mkdir -p /stonedb56/install/data/innodb | |
sudo mkdir -p /stonedb56/install/binlog | |
sudo mkdir -p /stonedb56/install/log | |
sudo mkdir -p /stonedb56/install/tmp | |
sudo chown -R mysql:mysql /stonedb56 | |
cd /stonedb56/install/mysql-test | |
sudo ./mysql-test-run.pl --suite=stonedb --nowarnings --force |