Arch Linux (3.0 release build) #503
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: Arch Linux (3.0 release build) | |
on: | |
schedule: | |
- cron: "10 16 * * *" | |
push: | |
branches: | |
- develop | |
- 3.0 | |
- main | |
pull_request: | |
branches: | |
- develop | |
- 3.0 | |
- main | |
env: | |
TOOLS_BUILD_TYPE: Release | |
PR_NUMBER: ${{ github.event.number }} | |
jobs: | |
check-changed: | |
runs-on: ubuntu-latest | |
outputs: | |
output1: ${{ steps.step1.outputs.test }} | |
output2: ${{ steps.step2.outputs.test }} | |
changedflag: ${{ steps.changedflag.outputs.changedflag }} | |
steps: | |
- name: Step that prints name of pull request's base branch | |
run: | | |
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' | |
- name: checkout taos-tools | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@v23.2 | |
- 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/changed-files@v23.2 | |
with: | |
files: | | |
src/* | |
inc/* | |
deps/CMakeLists.txt | |
.github/workflows/3.0-archlinux-release.yml | |
- name: Run step if any of the listed files above change | |
id: changedflag | |
if: steps.changed-files-specific.outputs.any_changed == 'true' | |
run: | | |
echo "One or more files listed above has changed." > ~/changed.log | |
echo "::set-output name=changedflag::true" | |
build: | |
runs-on: ubuntu-latest | |
needs: check-changed | |
container: docker.io/archlinux:latest | |
steps: | |
- name: Step that prints name of pull request's base branch | |
run: | | |
echo ${{needs.check-changed.outputs.changedflag}} | |
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' | |
- name: install packages for build | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
run: | | |
pacman -Syu --noconfirm > /dev/null | |
pacman -Sy git --noconfirm > /dev/null | |
- name: Checkout TDengine | |
if: | | |
(needs.check-changed.outputs.changedflag == '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: ${{ github.event.pull_request.base.ref }} | |
- name: Change time zone | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
run: | | |
echo "disable timezone changing" | |
#timedatectl set-timezone Asia/Shanghai | |
#date | |
- name: Set up Go | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.17 | |
- name: Set up Rust | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- uses: actions/cache@v3 | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
id: cache-rust | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ steps.setup-rust.outputs.rustc_hash }} | |
- name: first build TDengine 3.0 | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
run: | | |
pacman -Sy --noconfirm gcc make cmake gcc-libs gflags pkg-config python3 python-pip snappy zlib > /dev/null | |
gcc --version | |
python3 -m pip install --upgrade pip > /dev/null 2>&1 | |
cd TDengine && mkdir debug && cd debug && cmake .. -DBUILD_HTTP=false -DWEBSOCKET=true && make -j2 > /dev/null && make install > /dev/null | |
if [[ ! -f /usr/local/taos/bin/taosd ]] || [[ ! -f /usr/local/taos/bin/taosadapter ]] | |
then | |
echo "TDengine build failure" | |
exit 1 | |
fi | |
- name: checkout taos-tools | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. | |
- name: Checkout taos-tools to PR number | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
run: | | |
git config --global --add safe.directory /__w/taos-tools/taos-tools | |
git fetch origin +refs/pull/${{env.PR_NUMBER}}/merge | |
git checkout -qf FETCH_HEAD | |
- name: build taos-tools | |
if: | | |
(needs.check-changed.outputs.changedflag == 'true' | |
&& github.event_name == 'pull_request') | |
|| github.event_name == 'push' | |
|| github.event_name == 'schedule' | |
run: | | |
mkdir debug ||: | |
cd debug | |
cmake .. -DTOOLS_BUILD_TYPE=${{env.TOOLS_BUILD_TYPE}} -DWEBSOCKET=true > /dev/null | |
make -j8 > /dev/null && make install > /dev/null | |
if [[ ! -f /usr/local/taos/bin/taosdump ]] || [[ ! -f /usr/local/taos/bin/taosBenchmark ]] | |
then | |
echo "taos-tools build failure" | |
exit 1 | |
fi |