Fix timezone of build container #126
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: tests | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
types: [ opened, synchronize, reopened, edited ] | |
jobs: | |
tests: | |
name: tests | |
runs-on: self-hosted | |
steps: | |
- name: Ensure workspace ownership | |
run: echo "chown -R $USER $GITHUB_WORKSPACE" && sudo chown -R $USER $GITHUB_WORKSPACE | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Start builder container | |
run: | | |
TZ=$(readlink -f /etc/localtime | awk -F '/zoneinfo/' '{print $2}') | |
sudo docker rm -f infinity_build && sudo docker run -d --name infinity_build --network=host -e TZ=$TZ -v $PWD:/infinity infiniflow/infinity_build:0.1 | |
- name: Build debug version | |
run: sudo docker exec infinity_build bash -c "cd /infinity && rm -fr cmake-build-debug && mkdir -p cmake-build-debug && cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -S /infinity -B /infinity/cmake-build-debug && cmake --build /infinity/cmake-build-debug" | |
- name: Install pysdk | |
run: sudo docker exec infinity_build bash -c "cd /infinity/python && python3 setup.py install" | |
- name: Start infinity debug version | |
run: | | |
# Run a command in the background | |
sudo docker exec infinity_build bash -c "cd /infinity/ && rm -fr /tmp/infinity && cmake-build-debug/src/infinity > debug.log 2>&1" & | |
# Save its process ID to a file for later use | |
echo $! > debug_pid.txt | |
pid=$(cat debug_pid.txt) | |
sudo kill -0 $pid 2>/dev/null | |
if [ $? -eq 0 ]; then | |
echo "Process with PID $pid is alive." | |
else | |
echo "Process with PID $pid is not alive." | |
exit 1 # Set the step to fail | |
fi | |
- name: pysdk & sqllogictest debug version | |
run: sudo docker exec infinity_build bash -c "cd /infinity/ && python3 tools/sqllogictest.py" | |
- name: Collect infinity debug output | |
# GitHub Actions interprets output lines starting with "Error" as error messages, and it automatically sets the step status to failed when such lines are detected. | |
run: cat debug.log 2>/dev/null || true | |
if: always() # always run this step even if previous steps failed | |
- name: Stop infinity debug | |
run: | | |
pid=$(cat debug_pid.txt) | |
sudo kill -9 $pid | |
sleep 10 | |
sudo kill -0 $pid 2>/dev/null | |
if [ $? -eq 0 ]; then | |
echo "Process with PID $pid is alive." | |
exit 1 # Set the step to fail | |
else | |
echo "Process with PID $pid is not alive." | |
fi | |
if: always() # always run this step even if previous steps failed | |
- name: Build release version | |
run: sudo docker exec infinity_build bash -c "cd /infinity && rm -fr cmake-build-release && mkdir -p cmake-build-release && cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -S /infinity -B /infinity/cmake-build-release && cmake --build /infinity/cmake-build-release" | |
- name: Start infinity release version | |
run: | | |
sudo docker exec infinity_build bash -c "cd /infinity/ && rm -fr /tmp/infinity && cmake-build-release/src/infinity > release.log 2>&1" & | |
echo $! > release_pid.txt | |
pid=$(cat release_pid.txt) | |
sudo kill -0 $pid 2>/dev/null | |
if [ $? -eq 0 ]; then | |
echo "Process with PID $pid is alive." | |
else | |
echo "Process with PID $pid is not alive." | |
exit 1 # Set the step to fail | |
fi | |
- name: pysdk & sqllogictest release version | |
run: sudo docker exec infinity_build bash -c "cd /infinity/ && python3 tools/sqllogictest.py" | |
- name: Collect infinity release output | |
# GitHub Actions interprets output lines starting with "Error" as error messages, and it automatically sets the step status to failed when such lines are detected. | |
run: cat release.log 2>/dev/null || true | |
if: always() # always run this step even if previous steps failed | |
- name: Stop infinity release | |
run: | | |
pid=$(cat release_pid.txt) | |
sudo kill -9 $pid | |
sleep 10 | |
sudo kill -0 $pid 2>/dev/null | |
if [ $? -eq 0 ]; then | |
echo "Process with PID $pid is alive." | |
exit 1 # Set the step to fail | |
else | |
echo "Process with PID $pid is not alive." | |
fi | |
if: always() # always run this step even if previous steps failed |