iotdb 每日发布 #570
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
# 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---- |