Ubuntu (2.x aarch64 build) #524
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
# This is a basic workflow to help you get started with Actions | |
name: Ubuntu (2.x aarch64 build) | |
# Controls when the workflow will run | |
on: | |
schedule: | |
- cron: "10 16 * * *" | |
# Triggers the workflow on push or pull request events but only for the develop branch | |
push: | |
branches: [ develop ] | |
pull_request: | |
branches: [ develop ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
TOOLS_BUILD_TYPE: Debug | |
PR_NUMBER: ${{ github.event.number }} | |
jobs: | |
build_job: | |
runs-on: ubuntu-22.04 | |
name: Build on ${{ matrix.distro }} ${{ matrix.arch }} | |
# Run steps on a matrix of 3 arch/distro combinations | |
strategy: | |
matrix: | |
include: | |
- arch: aarch64 | |
distro: ubuntu22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Run setup | |
id: setup | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
ref: 'develop' | |
path: 'taos-tools' | |
# Set an output parameter `uname` for use in subsequent steps | |
run: | | |
uname -a | |
echo ::set-output name=uname::$(uname -a) | |
- name: Step that prints name of pull request's base branch | |
run: | | |
echo "The uname output was ${{ steps.setup.outputs.uname }}" | |
echo "Pull request's base branch is: ${BASE_BRANCH}" | |
echo "Pull request's branch is: ${GITHUB_REF##*/}" | |
echo "Pull request's head ref is: ${GITHUB_HEAD_REF}" | |
env: | |
BASE_BRANCH: ${{ github.base_ref }} | |
if: github.event_name == 'pull_request' | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. | |
submodules: false | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/[email protected] | |
- name: List all changed files | |
run: | | |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do | |
echo "$file was changed" | |
done | |
- name: Get specific changed files | |
id: changed-files-specific | |
uses: tj-actions/[email protected] | |
with: | |
files: | | |
src/* | |
inc/* | |
deps/CMakeLists.txt | |
packaging/tools/* | |
.github/workflows/2.x-aarch64.yml | |
- name: Run step if any of the listed files above change | |
if: steps.changed-files-specific.outputs.any_changed == 'true' | |
run: | | |
echo "One or more files listed above has changed." | |
- name: Checkout TDengine 2.6 | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
repository: 'taosdata/TDengine' | |
path: 'TDengine' | |
ref: '2.6' | |
- name: Change time zone | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
run: | | |
echo "The uname output was ${{ steps.setup.outputs.uname }}" | |
sudo timedatectl set-timezone Asia/Shanghai | |
sudo date | |
- name: Checkout TDengine's taos-tools to PR number | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
run: | | |
echo "Checkout taos-tools to PR number on was ${{ steps.setup.outputs.uname }}" | |
apt update -y > /dev/null | |
apt install git -y > /dev/null | |
git config --global --add safe.directory /home/runner/work/taos-tools/taos-tools/TDengine/src/kit/taos-tools | |
cd TDengine/src/kit/taos-tools | |
git fetch origin +refs/pull/${{env.PR_NUMBER}}/merge | |
git checkout -qf FETCH_HEAD | |
- name: Build TDengine on aarch64 | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: aarch64 | |
distro: ubuntu22.04 | |
run: | | |
apt update -y > /dev/null | |
apt install git cmake build-essential libexpat1-dev libjansson-dev libsnappy-dev liblzma-dev libz-dev zlib1g pkg-config -y > /dev/null | |
cd TDengine | |
mkdir debug ||: | |
cd debug | |
cmake .. -DBUILD_JDBC=false -DBUILD_TOOLS=true -DTOOLS_BUILD_TYPE=${{env.TOOLS_BUILD_TYPE}} > /dev/null | |
make > /dev/null && make install > /dev/null | |
if [[ ! -f /usr/local/taos/bin/taosd ]] | |
then | |
echo "TDengine build failure" | |
exit 1 | |
fi | |
- name: run taosdump Old Test cases on aarch64 | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: aarch64 | |
distro: ubuntu22.04 | |
run: | | |
echo "TEST: old cases" | |
cd TDengine/tests/pytest | |
pkill -9 taosadapter || : | |
pkill -9 taosd || : | |
sleep 5 | |
apt update -y > /dev/null | |
apt install python3 python3-pip -y > /dev/null | |
pip3 install --upgrade pip > /dev/null | |
pip3 install decorator numpy psutil pandas faker toml > /dev/null | |
pip3 install taospy > /dev/null | |
pip3 install fabric2 > /dev/null | |
python3 ./test.py -f tools/taosdumpTest.py && echo -e "\033[32m pytest/tools/taosdumpTest.py success! \033[0m" || echo -e "\033[31m system-test/$i failed! \033[0m" | tee -a ~/taosdump-failed.txt | |
- name: Check Test Result on aarch64 | |
if: | | |
(steps.changed-files-specific.outputs.any_changed == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: aarch64 | |
distro: ubuntu22.04 | |
run: | | |
if [ -f ~/taosdump-failed.txt ]; then | |
cat ~/taosdump-failed.txt; | |
exit 1; | |
fi |