ci: enhance function test workflow with environment setup and logging
This commit is contained in:
parent
8b8dd6e749
commit
f20bc1f739
|
@ -58,55 +58,118 @@ jobs:
|
||||||
pytest
|
pytest
|
||||||
|
|
||||||
function-test:
|
function-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on:
|
||||||
|
group: CI
|
||||||
|
labels: [self-hosted, Linux, X64, testing]
|
||||||
|
|
||||||
|
env:
|
||||||
|
CONTAINER_NAME: 'taosd-test'
|
||||||
|
WKDIR: '/var/lib/jenkins/workspace'
|
||||||
|
WK: '/var/lib/jenkins/workspace/TDinternal'
|
||||||
|
WKC: '/var/lib/jenkins/workspace/TDinternal/community'
|
||||||
|
SOURCE_BRANCH: ${{ github.event.pull_request.head.ref }}
|
||||||
|
TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
|
||||||
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout the repository
|
- name: Output the environment information
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Go
|
|
||||||
uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: 1.18
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
run: |
|
||||||
sudo apt update -y
|
echo "::group::Environment Info"
|
||||||
sudo apt install -y \
|
|
||||||
build-essential \
|
|
||||||
cmake \
|
|
||||||
gawk \
|
|
||||||
libgeos-dev \
|
|
||||||
libjansson-dev \
|
|
||||||
liblzma-dev \
|
|
||||||
libsnappy-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libz-dev \
|
|
||||||
pkg-config \
|
|
||||||
zlib1g
|
|
||||||
|
|
||||||
- name: Build and install TDengine
|
|
||||||
run: |
|
|
||||||
mkdir debug && cd debug
|
|
||||||
cmake .. -DBUILD_TOOLS=true \
|
|
||||||
-DBUILD_KEEPER=true \
|
|
||||||
-DBUILD_HTTP=false \
|
|
||||||
-DBUILD_TEST=true \
|
|
||||||
-DBUILD_DEPENDENCY_TESTS=false
|
|
||||||
make -j 4
|
|
||||||
sudo make install
|
|
||||||
which taosd
|
|
||||||
which taosadapter
|
|
||||||
which taoskeeper
|
|
||||||
|
|
||||||
- name: Run tdgpt test
|
|
||||||
run: |
|
|
||||||
cd ${{ github.workspace }}/tests/script
|
|
||||||
date
|
date
|
||||||
./test.sh -f tsim/analytics/basic0.sim
|
hostname
|
||||||
echo "Test exit code: $?"
|
env
|
||||||
if [ $? -eq 0 ]; then
|
echo "Runner: ${{ runner.name }}"
|
||||||
echo "Tests passed."
|
echo "Workspace: ${{ env.WKDIR }}"
|
||||||
else
|
git --version
|
||||||
echo "Tests failed."
|
echo "${{ env.WKDIR }}/restore.sh -p PR-${{ env.PR_NUMBER }} -n ${{ github.run_number }} -c ${{ env.CONTAINER_NAME }}"
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
- name: Prepare repositories
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
prepare_environment() {
|
||||||
|
cd "$1"
|
||||||
|
git reset --hard
|
||||||
|
git clean -f
|
||||||
|
git remote prune origin
|
||||||
|
git fetch
|
||||||
|
git checkout "$2"
|
||||||
|
}
|
||||||
|
prepare_environment "${{ env.WK }}" "${{ env.TARGET_BRANCH }}"
|
||||||
|
prepare_environment "${{ env.WKC }}" "${{ env.TARGET_BRANCH }}"
|
||||||
|
|
||||||
|
- name: Get latest codes and logs
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}
|
||||||
|
git remote prune origin
|
||||||
|
git pull >/dev/null
|
||||||
|
git log -5
|
||||||
|
echo "`date "+%Y%m%d-%H%M%S"` TDengineTest/${{ env.PR_NUMBER }}:${{ github.run_number }}:${{ env.TARGET_BRANCH }}" >>${{ env.WKDIR }}/jenkins.log
|
||||||
|
echo "CHANGE_BRANCH:${{ env.SOURCE_BRANCH }}" >>${{ env.WKDIR }}/jenkins.log
|
||||||
|
echo "community log: `git log -5`" >>${{ env.WKDIR }}/jenkins.log
|
||||||
|
git fetch origin +refs/pull/${{ env.PR_NUMBER }}/merge
|
||||||
|
git checkout -qf FETCH_HEAD
|
||||||
|
git log -5
|
||||||
|
echo "community log merged: `git log -5`" >>${{ env.WKDIR }}/jenkins.log
|
||||||
|
cd ${{ env.WK }}
|
||||||
|
git pull >/dev/null
|
||||||
|
git log -5
|
||||||
|
echo "TDinternal log: `git log -5`" >>${{ env.WKDIR }}/jenkins.log
|
||||||
|
|
||||||
|
- name: Update submodule
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
- name: Check assert testing
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}/tests/parallel_test
|
||||||
|
./run_check_assert_container.sh -d ${{ env.WKDIR }}
|
||||||
|
|
||||||
|
- name: Check void function testing
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}/tests/parallel_test
|
||||||
|
./run_check_void_container.sh -d ${{ env.WKDIR }}
|
||||||
|
|
||||||
|
- name: Build docker container
|
||||||
|
run: |
|
||||||
|
date
|
||||||
|
rm -rf ${{ env.WKC }}/debug
|
||||||
|
cd ${{ env.WKC }}/tests/parallel_test
|
||||||
|
time ./container_build.sh -w ${{ env.WKDIR }} -e
|
||||||
|
|
||||||
|
- name: Get parameters for testing
|
||||||
|
id: get_param
|
||||||
|
run: |
|
||||||
|
log_server_file="/home/log_server.json"
|
||||||
|
timeout_cmd=""
|
||||||
|
extra_param=""
|
||||||
|
|
||||||
|
if [ -f "$log_server_file" ]; then
|
||||||
|
log_server_enabled=$(jq '.enabled' "$log_server_file")
|
||||||
|
timeout_param=$(jq '.timeout' "$log_server_file")
|
||||||
|
if [ "$timeout_param" != "null" ] && [ "$timeout_param" != "0" ]; then
|
||||||
|
timeout_cmd="timeout $timeout_param"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$log_server_enabled" == "1" ]; then
|
||||||
|
log_server=$(jq '.server' "$log_server_file" | sed 's/\\\"//g')
|
||||||
|
if [ "$log_server" != "null" ] && [ "$log_server" != "" ]; then
|
||||||
|
extra_param="-w $log_server"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "timeout_cmd=$timeout_cmd" >> $GITHUB_OUTPUT
|
||||||
|
echo "extra_param=$extra_param" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Run function returns with a null pointer scan testing
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}/tests/parallel_test
|
||||||
|
./run_scan_container.sh -d ${{ env.WKDIR }} -b ${{ env.PR_NUMBER }}_${{ github.run_number }} -f ${{ env.WKDIR }}/tmp/${{ env.PR_NUMBER }}_${{ github.run_number }}/docs_changed.txt ${{ steps.get_param.outputs.extra_param }}
|
||||||
|
|
||||||
|
- name: Run tdgpt test cases
|
||||||
|
run: |
|
||||||
|
cd ${{ env.WKC }}/tests/parallel_test
|
||||||
|
export DEFAULT_RETRY_TIME=2
|
||||||
|
date
|
||||||
|
timeout 600 time ./run.sh -e -m /home/m.json -t tdgpt_cases.task -b "${{ env.PR_NUMBER }}_${{ github.run_number }}" -l ${{ env.WKDIR }}/log -o 300 ${{ steps.get_param.outputs.extra_param }}
|
||||||
|
|
Loading…
Reference in New Issue