Skip to content

Merge pull request #287 from taosdata/feat/TD-33208-MAIN #325

Merge pull request #287 from taosdata/feat/TD-33208-MAIN

Merge pull request #287 from taosdata/feat/TD-33208-MAIN #325

name: Test on Ubuntu-22.04
on:
push:
branches:
- 'main'
pull_request:
branches:
- 'main'
jobs:
test:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Build tools
run: |
sudo apt-get update -y
sudo apt-get install -y build-essential cmake libgeos-dev
- name: Setup Python
run: |
sudo apt-get install -y python3 python3-pip python-is-python3
- name: Build TDengine 2.x
run: |
git clone --depth 1 https://github.com/taosdata/TDengine.git -b 2.6 TDengine_v2
cd TDengine_v2
git submodule update --depth 1 --init --recursive
mkdir build
cd build
cmake ../ -DBUILD_HTTP=false -DBUILD_JDBC=false -DBUILD_DEPENDENCY_TESTS=false -DCMAKE_INSTALL_PREFIX:PATH=`realpath ../../local/`
make -j14
cd ../../
- name: Start TDengine 2.x
run: |
tree TDengine_v2/build/build/
sudo mkdir -p /etc/taos/ || true
export C_INCLUDE_PATH=$PWD/TDengine_v2/build/build/bin
export LD_LIBRARY_PATH=$PWD/TDengine_v2/build/build/lib
mkdir -p /tmp/taos/v2/data /tmp/taos/log/v2
printf "dataDir /tmp/taos/v2/data\nlogDir /tmp/taos/v2/log\ndebugFlag 135\n" |sudo tee /etc/taos/taos.cfg
./TDengine_v2/build/build/bin/taosadapter &
./TDengine_v2/build/build/bin/taosd &
- name: Cache Poetry
id: cache-poetry
uses: actions/[email protected]
with:
path: ~/.poetry
key: ubuntu-22.04-poetry
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#----------------------------------------------
# install your root project, if required
#----------------------------------------------
- name: Install library
run: poetry install --no-interaction
- name: Test 2.x
run: |
export LD_LIBRARY_PATH=$PWD/TDengine_v2/build/build/lib
#source $VENV
export TDENGINE_URL=localhost:6041
poetry run pip install psutil "numpy<2.0.0" pandas pytest-cov
poetry run pytest tests --cov-report term --cov-report html --cov-report xml --cov=taos --cov=taosrest tests
- name: 'Upload taosd logs'
if: failure()
uses: actions/upload-artifact@v3
with:
name: taosd-log-v2
path: /tmp/taos/v2/log/
retention-days: 1
- name: Stop TDengine 2.x and clean data
run: |
kill -9 $(pidof taosd)
kill -9 $(pidof taosadapter)
rm -rf /tmp/taos/* || true
rm -rf /var/log/taos/* || true
- name: Determine TDengine branch
uses: haya14busa/action-cond@v1
id: determine-branch
with:
cond: ${{ github.base_ref == 'main' }}
if_true: 'main'
if_false: '3.0'
- name: Checkout tdengine
uses: actions/checkout@v2
with:
repository: "taosdata/TDengine"
path: "TDengine_v3"
ref: ${{ steps.determine-branch.outputs.value }}
- name: Build TDengine 3.0
run: |
cd TDengine_v3
mkdir build
cd build
cmake ../ -DBUILD_JDBC=false -DCMAKE_INSTALL_PREFIX:PATH=`realpath ../../local/` -DBUILD_HTTP=false -DBUILD_DEPENDENCY_TESTS=false
make -j4
sudo make install
ls -alh /etc/taos/
cd ../../
- name: Start TDengine 3.0
run: |
tree TDengine_v3/build/build/
export C_INCLUDE_PATH=$PWD/TDengine_v3/build/build/bin
export LD_LIBRARY_PATH=$PWD/TDengine_v3/build/build/lib
mkdir -p /tmp/taos/v3/log /tmp/taos/v3/data
printf "dataDir /tmp/taos/v3/data\nlogDir /tmp/taos/v3/log\ndebugFlag 135\n" |sudo tee /etc/taos/taos.cfg
TAOS_SUPPORT_VNODES=256 ./TDengine_v3/build/build/bin/taosd &
./TDengine_v3/build/build/bin/taosadapter &
#----------------------------------------------
# run test suite
#----------------------------------------------
- name: Test 3.0
run: |
export LD_LIBRARY_PATH=$PWD/TDengine_v3/build/build/lib
#source $VENV
export TDENGINE_URL=localhost:6041
curl -L -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -d "show databases" localhost:6041/rest/sql
poetry run pip install psutil "numpy<2.0.0" pandas pytest-cov
poetry run pytest --cov-report term --cov-report html --cov-report xml --cov=taos --cov=taosrest --cov-append tests
- name: 'Upload taosd logs'
if: failure()
uses: actions/upload-artifact@v3
with:
name: log-v3-taosd
path: /tmp/taos/v3/log/
retention-days: 1
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: coverage.xml
fail_ci_if_error: false
- name: Build Artifacts
run: |
poetry build