Skip to content

iotdb 每日发布 #568

iotdb 每日发布

iotdb 每日发布 #568

Workflow file for this run

# Build iotdb-rel/0.13, iotdb-rel/1.0, master, iot-benchmark
# Everyday
name: iotdb 每日发布
on:
# push:
# branches:
# - master
schedule:
- cron: "0 12 * * *"
workflow_dispatch:
jobs:
collect:
runs-on: ubuntu-latest
outputs:
date: ${{steps.sys-info.outputs.date}}
steps:
- name: collect common info
shell: bash
id: sys-info
run: echo "date=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
#----start----
create-release-java8:
needs: collect
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Create release java-8
id: create-release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java8-apache-iotdb
name: ${{ needs.collect.outputs.date }} java8 apache iotdb
body: java 8
draft: false
prerelease: false
#----end----
#----start----
create-release-java11:
runs-on: ubuntu-latest
needs: collect
outputs:
upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Create release java-11
id: create-release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java11-apache-iotdb
name: ${{ needs.collect.outputs.date }} java11 apache iotdb
body: java 11
draft: false
prerelease: false
#----end----
#----start----
build-in-win:
needs: [ collect,create-release-java8,create-release-java11 ]
strategy:
fail-fast: false
max-parallel: 20
matrix:
iotdb_version: [ rel/0.13,rel/1.1,rel/1.2,master ]
java_version: [ 8,11 ]
os: [ windows-2022 ]
runs-on: ${{ matrix.os }}
steps:
- name: Set java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- name: download & unpack & install -> boost
if: ${{ matrix.os == 'windows-2022' && matrix.iotdb_version != 'master' }}
shell: cmd
run: |
C:\msys64\usr\bin\wget.exe -O ${{ github.workspace }}/boost_1_78_0-bin.7z https://github.com/xiaoyekanren/iotdb-daily-build-dependence/releases/download/release-depend-bin/boost_1_78_0-bin.7z
7z x ${{ github.workspace }}/boost_1_78_0-bin.7z -o${{ github.workspace }}/boost_1_78_0
- name: download & unpack & install -> boost
if: ${{ matrix.os == 'windows-2022' && matrix.iotdb_version == 'master' }}
shell: cmd
run: choco install boost-msvc-14.3 --version=1.78.0
- name: download & unpack flex&bison
shell: cmd
run: |
C:\msys64\usr\bin\wget.exe -O ${{ github.workspace }}/win_flex_bison-latest.zip https://jaist.dl.sourceforge.net/project/winflexbison/win_flex_bison-latest.zip
7z x ${{ github.workspace }}/win_flex_bison-latest.zip -o${{ github.workspace }}/win_flex_bison-latest
- name: download & unpack mvn3.9.x
if: ${{ matrix.os == 'windows-2022' && matrix.iotdb_version == 'master' }}
shell: cmd
run: |
C:\msys64\usr\bin\wget.exe -O ${{ github.workspace }}/apache-maven-3.9.4-bin.zip https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.zip
7z x ${{ github.workspace }}/apache-maven-3.9.4-bin.zip -o${{ github.workspace }}/apache-maven-3.9.4-bin
- name: install openssl
run: |
choco install openssl
- name: Checkout apache/iotdb
uses: actions/checkout@v3
with:
path: iotdb
repository: 'apache/iotdb'
ref: ${{ matrix.iotdb_version }}
fetch-depth: 0
- name: Collect IoTDB info
id: iotdb-info
shell: bash
run: |
cd iotdb
echo "commit=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
echo "branch=$(git branch |grep ^*|cut -d ' ' -f 2)" >> "$GITHUB_OUTPUT"
echo "version=$(cat pom.xml | grep -e '^ <version>' | sed 's# ##g' | sed 's#<version>##g' | sed 's#</version>##g')" >> "$GITHUB_OUTPUT"
# To distinguish master and rel/1.0 branches, add temporary variables
echo "matrix_version=$(echo ${{ matrix.iotdb_version }} | sed "s:/::")" >> "$GITHUB_OUTPUT"
# boost
echo "boost_include_dir=${{ github.workspace }}\boost_1_78_0\boost_1_78_0" >> "$GITHUB_OUTPUT"
echo "boost_library_dir=${{ github.workspace }}\boost_1_78_0\boost_1_78_0\stage\lib" >> "$GITHUB_OUTPUT"
#
echo "cmake_url=https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-windows-x86_64.zip" >> "$GITHUB_OUTPUT"
if [ "${{ matrix.java_version }}" = "8" ]; then
echo "upload_url=${{ needs.create-release-java8.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
elif [ "${{ matrix.java_version }}" = "11" ]; then
echo "upload_url=${{ needs.create-release-java11.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
else
echo "Found unknown jdk version. exit."
exit 1
fi
if [ "${{ matrix.iotdb_version }}" = "master" ]; then
echo "server_dir=iotdb-core/datanode" >> "$GITHUB_OUTPUT"
echo "cpp_dir=iotdb-client\client-cpp" >> "$GITHUB_OUTPUT"
echo "cmake_root_dir=${{ github.workspace }}\iotdb\iotdb-client\compile-tools\thrift\target\cmake-3.23.1-windows-x86_64" >> "$GITHUB_OUTPUT"
elif [ "${{ matrix.iotdb_version }}" = "rel/1.2" ]; then
echo "server_dir=iotdb-core/datanode" >> "$GITHUB_OUTPUT"
echo "cpp_dir=iotdb-client\client-cpp" >> "$GITHUB_OUTPUT"
echo "cmake_root_dir=${{ github.workspace }}\iotdb\iotdb-client\compile-tools\thrift\target\cmake-3.23.1-windows-x86_64" >> "$GITHUB_OUTPUT"
else
echo "server_dir=server" >> "$GITHUB_OUTPUT"
echo "cpp_dir=client-cpp" >> "$GITHUB_OUTPUT"
echo "cmake_root_dir=${{ github.workspace }}\iotdb\compile-tools\thrift\target\cmake-3.23.1-windows-x86_64" >> "$GITHUB_OUTPUT"
fi
# build client-cpp
- name: Build client-cpp
if: ${{ matrix.os == 'windows-2022' && matrix.iotdb_version != 'master' }}
shell: cmd
run: |
cd ${{ github.workspace }}\iotdb
set Path=%Path%;${{ github.workspace }}\win_flex_bison-latest
set Path
mvn package -Dcmake.generator="Visual Studio 17 2022" -P compile-cpp -pl ${{ steps.iotdb-info.outputs.server_dir }},${{ steps.iotdb-info.outputs.cpp_dir }},example/client-cpp-example -am -DskipTests -Dboost.include.dir="${{ steps.iotdb-info.outputs.boost_include_dir }}" -Dboost.library.dir="${{ steps.iotdb-info.outputs.boost_library_dir }}" -Dcmake.url="${{ steps.iotdb-info.outputs.cmake_url }}" -Dcmake.root.dir="${{ steps.iotdb-info.outputs.cmake_root_dir }}"
- name: Build client-cpp on master branch
if: ${{ matrix.os == 'windows-2022' && matrix.iotdb_version == 'master' }}
shell: cmd
run: |
cd ${{ github.workspace }}\iotdb
set Path=%Path%;${{ github.workspace }}\win_flex_bison-latest
set Path=${{ github.workspace }}\apache-maven-3.9.4-bin\apache-maven-3.9.4\bin;%Path%
set
mvn clean package -P with-cpp -pl iotdb-client/client-cpp,example/client-cpp-example -am -DskipTests
# # compile all without cache
# mvn clean package -P with-cpp -pl iotdb-client/client-cpp,example/client-cpp-example -am -DskipTests
# set CPPFLAGS=/I"${{ steps.iotdb-info.outputs.boost_include_dir }}" %CPPFLAGS%
# set LDFLAGS=/L"${{ steps.iotdb-info.outputs.boost_library_dir }}" %LDFLAGS%
# set BOOST_INCLUDE_DIR=${{ steps.iotdb-info.outputs.boost_include_dir }}
# set BOOST_LIBRARY_DIR=${{ steps.iotdb-info.outputs.boost_library_dir }}
# set Boost_INCLUDE_DIR=${{ steps.iotdb-info.outputs.boost_include_dir }}
# set Boost_LIBRARY_DIR=${{ steps.iotdb-info.outputs.boost_library_dir }}
# setx BOOST_INCLUDE_DIR ${{ steps.iotdb-info.outputs.boost_include_dir }}
# setx BOOST_LIBRARY_DIR ${{ steps.iotdb-info.outputs.boost_library_dir }}
# setx Boost_INCLUDE_DIR ${{ steps.iotdb-info.outputs.boost_include_dir }}
# setx Boost_LIBRARY_DIR ${{ steps.iotdb-info.outputs.boost_library_dir }}
#
# upload client-cpp
- name: apache-iotdb-client-cpp-x86_64-${{ matrix.os }}-${{ steps.iotdb-info.outputs.branch }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.commit }}.zip
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}\iotdb\${{ steps.iotdb-info.outputs.cpp_dir }}\target\*.zip
#
# build client-cpp-example
- name: compress client-cpp-example
shell: bash
run: |
cd iotdb/example/client-cpp-example/target
7z a client-cpp-example-${{ steps.iotdb-info.outputs.version }}-cpp-windows-x86_64.zip client CMakeLists.txt SessionExample.cpp
#
# upload client-cpp-example
- name: Upload apache-iotdb-client-cpp-example-x86_64-${{ matrix.os }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.matrix_version }}-${{ steps.iotdb-info.outputs.commit }}.zip using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}\iotdb\example\client-cpp-example\target\*.zip
#
#----end----
#----start----
build-in-linux:
needs: [ collect,create-release-java8,create-release-java11 ]
strategy:
fail-fast: false
max-parallel: 20
matrix:
iotdb_version: [ rel/0.13,rel/1.1,rel/1.2,master ]
java_version: [ 8,11 ]
runs-on: ubuntu-latest
steps:
- name: Set java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
- name: Checkout apache/iotdb
uses: actions/checkout@v3
with:
path: iotdb
repository: 'apache/iotdb'
ref: ${{ matrix.iotdb_version }}
fetch-depth: 0
#collect-iotdb
- name: Collect IoTDB info
id: iotdb-info
run: |
sudo apt-get install python3-pip
pip3 install setuptools
pip3 install wheel
cd ${{ github.workspace }}/iotdb
echo "commit=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "branch=$(git branch |grep ^*|cut -d ' ' -f 2|sed "s:/:-:")" >> $GITHUB_OUTPUT
echo "version=$(cat pom.xml | grep -e '^ <version>' | sed 's# ##g' | sed 's#<version>##g' | sed 's#</version>##g')" >> $GITHUB_OUTPUT
# To distinguish master and rel/1.0 branches, add temporary variables
echo "matrix_version=$(echo ${{ matrix.iotdb_version }} | sed "s:/::")" >> $GITHUB_OUTPUT
if [ "${{ matrix.java_version }}" = "8" ]; then
echo "upload_url=${{ needs.create-release-java8.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
elif [ "${{ matrix.java_version }}" = "11" ]; then
echo "upload_url=${{ needs.create-release-java11.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
else
echo "Found unknown jdk version. exit."
exit 1
fi
if [ "${{ matrix.iotdb_version }}" = "master" ]; then
echo "client_jdbc_module=iotdb-client/jdbc" >> "$GITHUB_OUTPUT"
echo "client_py_module=iotdb-client/client-py" >> "$GITHUB_OUTPUT"
elif [ "${{ matrix.iotdb_version }}" = "rel/1.2" ]; then
echo "client_jdbc_module=iotdb-client/jdbc" >> "$GITHUB_OUTPUT"
echo "client_py_module=iotdb-client/client-py" >> "$GITHUB_OUTPUT"
else
echo "client_jdbc_module=jdbc" >> "$GITHUB_OUTPUT"
echo "client_py_module=client-py" >> "$GITHUB_OUTPUT"
fi
#
#build-iotdb
- name: Build iotdb
if: ${{ matrix.iotdb_version != 'master' }}
shell: bash
run: |
cd ${{ github.workspace }}/iotdb
mvn clean package -DskipTests -am -pl ${{ steps.iotdb-info.outputs.client_jdbc_module }},${{ steps.iotdb-info.outputs.client_py_module }},distribution -P get-jar-with-dependencies,compile-grafana-plugin
- name: Build iotdb master branch
if: ${{ matrix.iotdb_version == 'master' }}
shell: bash
run: |
cd ${{ github.workspace }}/iotdb
mvn clean package -DskipTests -am -pl ${{ steps.iotdb-info.outputs.client_jdbc_module }},${{ steps.iotdb-info.outputs.client_py_module }},distribution -P get-jar-with-dependencies,with-grafana-plugin
#
#upload-all
- name: Upload apache-iotdb-all-bin-${{ steps.iotdb-info.outputs.branch }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.commit }}.zip using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}/iotdb/distribution/target/apache-iotdb-${{ steps.iotdb-info.outputs.version }}-all-bin.zip
#
#grafana-plugin
- name: Upload apache-iotdb-grafana-plugin-bin-${{ steps.iotdb-info.outputs.branch }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.commit }}.zip using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}/iotdb/distribution/target/apache-iotdb-${{ steps.iotdb-info.outputs.version }}-grafana-plugin-bin.zip
#
#iotdb-jdbc-*-jar-with-dependencies.jar
- name: Upload apache-iotdb-jdbc-${{ steps.iotdb-info.outputs.branch }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.commit }}-jar-with-dependencies.jar using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}/iotdb/${{ steps.iotdb-info.outputs.client_jdbc_module }}/target/iotdb-jdbc-${{ steps.iotdb-info.outputs.version }}-jar-with-dependencies.jar
#
#client-py
- name: Build Apache IoTDB client-py in ${{ matrix.iotdb_version }} using ${{ matrix.java_version }}
shell: bash
id: build-py-client
run: |
cd ${{ github.workspace }}/iotdb/${{ steps.iotdb-info.outputs.client_py_module }}
rm -rf dist
python3 setup.py bdist_wheel --universal
cd dist
echo "client_py_whl_name=$(ls apache_iotdb-*.whl)" >> "$GITHUB_OUTPUT"
- name: Upload apache_iotdb-${{ steps.iotdb-info.outputs.branch }}-${{ steps.iotdb-info.outputs.version }}-${{ steps.iotdb-info.outputs.commit }}-py2.py3-none-any.whl using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}/iotdb/${{ steps.iotdb-info.outputs.client_py_module }}/dist/${{ steps.build-py-client.outputs.client_py_whl_name }}
#
#----end----
#----start----
build-benchmark:
needs: [ collect,create-release-java8,create-release-java11 ]
strategy:
fail-fast: false
max-parallel: 20
matrix:
java_version: [ 8,11 ]
release_db: [ iotdb-0.13,iotdb-1.0,iotdb-1.1,influxdb,influxdb-2.0,timescaledb,timescaledb-cluster,tdengine-3.0 ]
runs-on: ubuntu-latest
steps:
# set java
- name: Set java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java_version }}
distribution: 'temurin'
#
## build iotdb
# - name: Checkout iotdb
# if: ${{ matrix.release_db == 'iotdb-1.1' }}
# uses: actions/checkout@v2
# with:
# path: iotdb-1.0
# repository: 'apache/iotdb'
# ref: rel/1.0
# fetch-depth: 0
# - name: build iotdb
# run: |
# cd ${{ github.workspace }}/iotdb-1.0
# mvn install -DskipTests -am -pl jdbc,session
##
# clone iot-benchmark
- name: Checkout iot-benchmark
uses: actions/checkout@v3
with:
path: iot-benchmark
repository: 'thulab/iot-benchmark'
ref: master
fetch-depth: 0
- name: Collect benchmark info
id: benchmark-info
run: |
cd ${{ github.workspace }}/iot-benchmark
echo "commit=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
if [ "${{ matrix.java_version }}" = "8" ]; then
echo "upload_url=${{ needs.create-release-java8.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
elif [ "${{ matrix.java_version }}" = "11" ]; then
echo "upload_url=${{ needs.create-release-java11.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
else
echo "Found unknown jdk version. exit."
exit 1
fi
#
# build iot-benchmark
- name: Build benchmark
run: |
cd ${{ github.workspace }}/iot-benchmark
mvn clean package -DskipTests -am -pl core,${{ matrix.release_db }}
#
#---upload
- name: Upload iot-benchmark-${{ matrix.release_db }}-${{ steps.benchmark-info.outputs.commit }}.zip using ${{ matrix.java_version }}
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.collect.outputs.date }}-java${{ matrix.java_version }}-apache-iotdb
files: ${{ github.workspace }}/iot-benchmark/${{ matrix.release_db }}/target/iot-benchmark-${{ matrix.release_db }}.zip
#
#----end----