mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
* chore(ci): with cmake verbose, temporarily
* chore(cmake): prefer Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): try adding Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): revert taosd-ci-build.yml
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment, adding dl right after DEP_ext_libuv
* fix(cmake): debug building on ubuntu 20.04 for the moment, try full run
* fix(cmake): fix building on ubuntu 20.04
* fix(cmake): dl is only valid in non-windows platform
* fix(cmake): dl order
* refactor(cmake): adjust option/cache variables for external dependencies
* refactor(cmake): mv patch files from contrib/ to cmake/
* refactor(cmake): typo
* refactor(cmake): adding cache on ci
* refactor(cmake):
1. ext_lzma2 is only used by Linux
2. fix bug in taosd-ci-build.yml
* enh: adding functionalities of build.sh
* fix(ci): `cmake -B` shall maintain consistency
* refactor(cmake): LOCAL_REPO/LOCAL_URL as cache variable
* refactor(cmake): taosadapter to be built in main build directory rather than .externals
* refactor(cmake): adding rpath for taosadapter, linux now
* refactor(cmake): adding rpath for taosadapter, macos now
* chore(cmake): remove some comments
* debug(ci): bypass TD_EXTERNALS_USE_ONLY
* debug(ci): bypass .externals caching for the moment
* fix(cmake): temporarily use taosadapter/main branch because this branch(freemine.cmake.3.0) has not include taos_fetch_fields_e from upstream
* refactor(cmake): clean GIT_TAG/GIT_SHALLOW pairs
* enh(ci): use build.sh rather than hard-coded in taosd-ci-build.yml, linux for now
* debug(ci): undefined __isoc23_strtoull
* debug(ci): benchmarkTest
* debug(ci): what if use_only = off
* debug(ci): remove .externals to make a refresh build
* debug(ci): back to cache, and ls files of gtest
* debug(ci): remove find coz {} not escaped
* debug(ci): cache key seems missing "matrix.os"
* refactor(ci): fixed cache key and reopen macos/windows
* chore(ci): literally -j4
* chore(ci): Trigger GitHub Actions re-run
* chore(ci): Trigger GitHub Actions re-run
* fix(ci): typo
* chore(ci): JOBS calculated by build.sh itself
* refactor(ci): enable WEBSOCKET in build.sh by default
* refactor(ci): enable WEBSOCKET in build.sh by default, macOS
* chore(cmake): remove obsoletes
* refactor(ci): stop service before running taosd
* chore(ci): `./build.sh install` just install TDengine, you will have to start taosd by `./build.sh start`
* refactor(cmake): adding source code found on http://emfisis.physics.uiowa.edu/Software/C/libargp/
* refactor(cmake): moving jansson/snappy/avro to .externals, and porting BUILD_TEST/WEBSOCKET on Windows
* refactor(cmake): porting linux
* refactor(cmake): porting macos
1. check argp.h
2. re-enable building taosdump
* refactor(cmake): porting linux
1. adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): porting windows, adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): use cmake_parse_arguments in macro INIT_EXT
* refactor(cmake): format ci cache directives
* refactor(cmake): adding comments for ci externals-cache directives
* refactor(cmake): adding check_env.cmake to checking libraries installed on the system
* refactor(cmake): porting linux, make homebrew-installed-libs available
* refactor(cmake): remove BYPRODUCTS from INIT_EXT macro
* refactor(cmake): INC_DIR is oneValueArg
* refactor(cmake): taosdump depends on ext_xz(LZMA)
* refactor(cmake): add copy_pthreadVC3 target on windows
* refactor(cmake): mv taosd-ci-build.yml to tdengine-build.yml
* chore(ci): try to fix yml syntax error
* refactor(cmake): use brew --prefix to get HomeBrew's install path
* refactor(cmake): typo
* debug(ci): build and cache externals first
* debug(ci): adding -Wno-stringop-overread for the moment
* debug(ci): make Threads::Threads public from os target
* debug(ci): make os public
* debug(ci): re-enable start and test
* debug(ci): let it go even if taosBenchmark failed
* debug(ci): copy logic from TDengine/main
* debug(ci): try ./build.sh start/test
* debug(ci): revert to original simple test logic in ci, taosBenchark/taos
* chore(cmake): code-convention and ci-logic
* debug(ci): show versions
* debug(ci): forcefully use specific GIT_TAG by commit-id for taos-connector-rust.git and taosadapter.git
* refactor(cmake): remove empty lines
* debug(ci): typo
* debug(ci): set supportVnodes to 256 before starting taosd
* debug(ci): fix: sudo and pipe
* debug(ci): cat /etc/taos/taos.cfg to check if supportVnodes effective
* debug(ci): cat forceReadConfig to taos.cfg
* debug(ci): adding taos -s "show dnodes"
* debug(ci): print more info
* debug(ci):
1. git log .... in an independant step
2. sleep 3 deliberately
* build: release ver-3.3.6.0
* chore(ci): comment and remove unnecessary code
* refactor(ci): cleanup tools/CMakeLists.txt
1. remove unnecessary or uneffective codes
2. better approach to pass compile flags to go
* chore(cmake): remove unnecessary code
* merge(cmake): porting linux
* merge(cmake): porting macOS
* merge(cmake): porting windows
* merge(cmake): pitfall fix: use literal format string instead
* merge(cmake): ver-3.3.6.0 for both taosadatper and taosws
* merge(cmake): adjust ci for debug purposes
* merge(cmake): add dependenices to make sure native built
* merge(main): link os
* merge(main): revert to main
* chore(cmake): remove freemine'd comments
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove unnecessaries
* refactor(cmake): remove unnecessaries
* chore(cmake):
1. remove taosudf in build.sh::do_purge
2. packaging taosBenchmark
* chore(cmake):
1. typo corrections
2. add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): show cmake version
* chore(cmake): add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): typo
* chore(cmake): remove unnecessaries
* cmake: debug enterprise compilation
* refactor: preparatory work before merging the freemin PR
* refactor(cmake): revert to d91205594a
* refactor(cmake): optimize by adjusting cache key
* chore(cmake): make github ci to run with empty change
* refactor(cmake): move libs3 and azure to external.cmake
* refactor(cmake): porting macOS
* refactor(cmake): move cos to external.cmake
* refactor(cmake): bypass s3/azure/cos on windows for the moment
* refactor(cmake): try find_package(Threads)
* refactor(cmake): add dl/pthread in libs3
* refactor(cmake): enable s3/azure for the moment, hard-coded
* refactor(cmake): adjust BUILD_WITH_ANALYSIS option
* refactor(cmake):
1. enum AVROTYPE => enum enAVROTYPE
2. remove INSTALL(CODE ...) from tools/taos-tools/CMakeLists.txt
* refactor(cmake): portint macOS and typo
* refactor(cmake): ticking external cache key to force refresh external building
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes, contrib/deps-download related
* refactor(cmake): adding build.bat, and use build.bat in .github/workflows/tdengine-build.yml
* refactor(cmake):
1. call .\build.bat
2. remove POST_BUILD which is not valid in this signature of add_custom_command
* refactor(ci): use 'NMake Makefiles JOM'
* refactor(ci): typo
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): use call on windows
* refactor(cmake): move utils/TSZ to contrib/TSZ
* chore(cmake): make github ci to run with empty change
* refactor(cmake): mv cmake.* -> *.cmake and related in CMakeLists.txt
* refactor(cmake): debugging integrating community
* refactor(cmake): debugging integrating community
* chore(cmake): make github ci to run with empty change
* refactor(cmake): revert geos.git back to 3.12.0
* refactor(cmake): revert doc/** to main branch
* refactor(cmake): revert tests/** to main branch, except tests/taosc_test/CMakeLists.txt
* refactor(cmake): revert test/cases/** to main branch
* refactor(cmake): revert test/docs/** to main branch
* refactor(cmake): revert tools/taos-tools/deps/{avro,jansson,libargp,snappy,zlib-1.2.13} to main branch, which need to be removed later
* refactor(ci): revert .github/workflows/{deploy-case-docs.yml,tdengine-doc-build.yml} to main branch
* refactor(cmake): revert tcommon.h and related to main branch
* refactor(cmake): revert test/* stuffs back to main branch
* refactor(cmake): revert libuv.git back to v1.49.2
* refactor(cmake): revert .h/.c and related to main branch
* refactor(cmake): typo format string
* refactor(cmake): typo correction, incorrect use of macro `assert`
* refactor(cmake): adding /wd4028 to bypass thttp.c under enterprise build for the moment
* refactor(cmake):
1. adding some rules to .gitignore for the last resort to save
2. adding source files manually to source/libs/parser/CMakeLists.txt to exclude potential sql.c generated by old build system
* refactor(cmake): add -Wno-unused-result for the moment
* refactor(cmake): adjust target dependencies
* refactor(cmake): tweaking building of mxml
* refactor(cmake): adjust externals CMAKE_ARGS to save compilation time
* refactor(cmake): temporarily use tomchon-patch-3
* refactor(cmake): temporarily adding dumpbin directives
* refactor(cmake): adding NODEFAULTLIB temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:libcpmt temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:cpmt temporarily for debugging purpose
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* refactor(ci): use freemine.debug branch for the moment
* refactor(ci): revert back to use run-tests-on-windows.yml of tomchon-patch-3 branch
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove temporary debug directives
* refactor(cmake): move cmake_policy(..CMP0135..) to the root of this project
* refactor(cmake): Remove temporary debugging conditional and restore original logic
* chore(cmake): adding -B in army tests
* chore(cmake): make github ci to run with empty change
* chore(cmake): revert: adding -B in army tests
* refactor(cmake):
1. use ver-3.3.6.3 of taosadapter
2. pitfall fix: do not link with taosws for taos shell
* refactor(cmake): revert taosadapter to ver-3.3.6.0
* chore(cmake): adding logging message in more detail
* chore(cmake): adding logging message in more detail
* chore(ci): debugging by using ls -l
* chore(ci): typo
* chore(ci): typo
* refactor(cmake): revert to remove debug code, and taosadapter to ver-3.3.6.3
* refactor(cmake): remove DEP_ext_taosws
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): typo correction: utils/test/c/sml_test.c
* debug(cmake): test cases debug
* chore(cmake): make github ci to run with empty change
* chore(ci): using tomchon-patch-3 branch for run-tests-on-linux for the moment
* chore(cmake): make github ci to run with empty change
* debug(test): revert utils/test/c/sml_test.c back to tdengine/main branch
* debug(test): adding VERBOSE=1 and gcc --version
* debug(test): revert tests/parallel_test/cases.task back to tdengine/main branch
* debug: add log in run_case.sh
* fix: test log
* fix: docker run privileged
* tes: add debug test in cases.task
* refactor(cmake): remove ref to \contrib\<dep-name> and ~/.cos-local-{1,2} from CMakeLists.txt(s)
* refactor(cmake): make taosudf link with libtaos.so
* chore(cmake): fix compiler warning as error problem
* refactor(cmake): revert 7d7f03832d
* chore(cmake): only udf.sim and udfpy.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug only udf.sim for the moment
* debug(ci): debug only udf.sim for the moment, using tee
* debug(ci): debug only udf.sim for the moment, revert using tee
* debug(ci): debug only udf.sim for the moment, adding TAOS_LIB again
* debug(cmake): adding -rdynamic for the moment
* debug(cmake): re-adding udfpy.sim
* debug(cmake): do NOT run with Sanitizer for udfpy.sim for the moment
* chore(cmake): revert cases.task, and remove ubuntu-20.04 from tdengine-build.yml
* refactor(cmake): using ENABLE_EXPORTS to export symbols in taosudf
* chore(cmake): make github ci to run with empty change
* chore(cmake): remove stuffs for debug purpose and revert
---------
Co-authored-by: support-platform <it@taosdata.com>
Co-authored-by: Simon Guan <slguan@taosdata.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
Co-authored-by: haoranchen <haoran920c@163.com>
241 lines
6.9 KiB
YAML
241 lines
6.9 KiB
YAML
name: TDengine Build
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- 'main'
|
|
- '3.0'
|
|
- '3.1'
|
|
- '3.3.6'
|
|
- 'enh/cmake-TD-33848'
|
|
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'packaging/**'
|
|
- 'tests/**'
|
|
- '**/*.md'
|
|
- 'test/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
name: Run on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- ubuntu-22.04
|
|
- ubuntu-24.04
|
|
- macos-13
|
|
- macos-14
|
|
- macos-15
|
|
- windows-2022
|
|
|
|
steps:
|
|
- name: Get CPU Cores
|
|
shell: bash
|
|
run: |
|
|
if [ "${{ runner.os }}" == "Linux" ]; then
|
|
CPU_CORES=$(nproc)
|
|
elif [ "${{ runner.os }}" == "macOS" ]; then
|
|
CPU_CORES=$(sysctl -n hw.ncpu)
|
|
elif [ "${{ runner.os }}" == "Windows" ]; then
|
|
CPU_CORES=$(powershell -Command "(Get-CimInstance -ClassName Win32_Processor).NumberOfCores")
|
|
fi
|
|
echo "CPU Cores: $CPU_CORES"
|
|
echo "CPU_CORES=$CPU_CORES" >> $GITHUB_ENV
|
|
|
|
- name: Dump CPU Cores
|
|
run: |
|
|
echo "The number of CPU cores is: ${{ env.CPU_CORES }}"
|
|
|
|
- name: prepare install path
|
|
if: runner.os == 'macOS'
|
|
run: |
|
|
sudo mkdir -p /usr/local/lib
|
|
sudo mkdir -p /usr/local/include
|
|
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Cache Go modules on Linux and macOS
|
|
if: runner.os != 'Windows'
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
|
|
- name: Cache Homebrew on macOS
|
|
if: runner.os == 'macOS'
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: /usr/local/Homebrew
|
|
key: ${{ runner.os }}-brew-${{ hashFiles('**/Brewfile') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-brew-
|
|
|
|
- name: Cache Go modules on Windows
|
|
if: runner.os == 'Windows'
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
C:\Users\runneradmin\go\pkg\mod
|
|
C:\Users\runneradmin\AppData\Local\go-build
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: 1.23
|
|
|
|
- name: Install dependencies on Linux
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt update -y
|
|
sudo apt install -y \
|
|
build-essential \
|
|
cmake \
|
|
gawk \
|
|
libgeos-dev \
|
|
libjansson-dev \
|
|
liblzma-dev \
|
|
libsnappy-dev \
|
|
libssl-dev \
|
|
libz-dev \
|
|
pkg-config \
|
|
zlib1g
|
|
|
|
- name: Install dependencies on macOS
|
|
if: runner.os == 'macOS'
|
|
run: |
|
|
brew update
|
|
brew install \
|
|
argp-standalone \
|
|
gawk \
|
|
gflags \
|
|
geos \
|
|
jansson \
|
|
openssl \
|
|
pkg-config \
|
|
snappy \
|
|
zlib
|
|
|
|
- name: Show software version
|
|
run: |
|
|
cmake --version
|
|
|
|
- name: Get CMake
|
|
uses: lukka/get-cmake@latest
|
|
with:
|
|
cmakeVersion: 3.31.6
|
|
|
|
- name: Install dependencies on Windows
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
choco install jom --yes
|
|
|
|
- name: Cache externals built
|
|
uses: actions/cache@v4
|
|
id: cache-ext
|
|
with:
|
|
path: ${{ github.workspace }}/.externals
|
|
key: ${{ runner.os }}-${{ matrix.os }}-${{ hashFiles('cmake/external.cmake', 'cmake/in/**') }}-build-ext-v3 # this is tailing cache-version-tick
|
|
|
|
- if: ${{ steps.cache-ext.outputs.cache-hit != 'true' && runner.os != 'Windows' }}
|
|
name: Build externals on Linux and macOS
|
|
continue-on-error: false
|
|
run: |
|
|
./build.sh gen
|
|
./build.sh bld --target build_externals -v
|
|
|
|
- if: ${{ steps.cache-ext.outputs.cache-hit != 'true' && runner.os == 'Windows' }}
|
|
name: Build externals on Windows
|
|
continue-on-error: false
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
|
|
set CL=/MP8
|
|
call .\build.bat gen -G "NMake Makefiles JOM"
|
|
call .\build.bat bld --target build_externals -v
|
|
|
|
- name: Build TDengine on Linux and macOS
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
./build.sh gen -DTD_EXTERNALS_USE_ONLY:BOOL=ON
|
|
./build.sh bld -v
|
|
./build.sh install
|
|
which taosd
|
|
which taosadapter
|
|
which taoskeeper
|
|
which taos
|
|
taosd --help
|
|
taosadapter --help
|
|
|
|
- name: Build and install TDengine on Windows
|
|
if: runner.os == 'Windows'
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
|
|
set CL=/MP8
|
|
call .\build.bat gen -DTD_EXTERNALS_USE_ONLY:BOOL=ON -G "NMake Makefiles JOM"
|
|
call .\build.bat bld -v
|
|
call .\build.bat install
|
|
echo %PATH%
|
|
dir C:\TDengine
|
|
set PATH=%PATH%;C:\TDengine
|
|
echo %PATH%
|
|
where taos.exe
|
|
where taosd.exe
|
|
where taosadapter.exe
|
|
where taoskeeper.exe
|
|
taosd.exe --help
|
|
taosadapter.exe --help
|
|
|
|
- name: Statistics ldd
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
find ${{ github.workspace }}/debug/build/lib -type f -name "*.so" -print0 | xargs -0 ldd || true
|
|
find ${{ github.workspace }}/debug/build/bin -type f -print0 | xargs -0 ldd || true
|
|
|
|
- name: Statistics otool
|
|
if: runner.os == 'macOS'
|
|
run: |
|
|
find ${{ github.workspace }}/debug/build/lib -type f -name "*.dylib" -print0 | xargs -0 otool -L || true
|
|
find ${{ github.workspace }}/debug/build/bin -type f -print0 | xargs -0 otool -L || true
|
|
|
|
- name: Start taosd on Linux and macOS
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
taosd -V
|
|
taosadapter -V
|
|
taosBenchmark -V
|
|
taos -V
|
|
./build.sh start
|
|
pgrep -l taos
|
|
sleep 6 # NOTE: wait for taosd initialization to complete
|
|
pgrep -l taos
|
|
taos -s "show databases"
|
|
taos -s "show dnodes"
|
|
|
|
- name: Run tests with taosBenchmark
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
taos -s "show databases"
|
|
taosBenchmark -t 10 -n 10 -s 1744951233012 -y
|
|
taos -s "select count(*) from test.meters"
|
|
|
|
- name: Clean up on Linux and macOS
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
./build.sh stop
|
|
|