Skip to content
Snippets Groups Projects
Commit 06a482da authored by Xinglu Yee's avatar Xinglu Yee Committed by dangleptr
Browse files

Update docker related configuration (#1074)

* Reset log level and stderrthreshold

Fold too long line in Dockerfile

Decrease data loading interval seconds and fix typos

* Set default constructor and destructor

Comment exposed ports

Format commands

Increase number worker threads

Export ports of web server

Add build docker image bash

Fix nebula spec

Add package and build matrix test

Fix expose ports in docker compose yaml file

Upgrade new docker image and docker-compose deployment method

Mount local directory to container

Ignore docker data/logs folders

Restart on failure

* Move docker-compose configure file to other repo

vesoft/nebula-docker-compose

Fix docker image tag

* Use matrix of action to parallel jobs

* Update package script

Delete package type parameter for package script

Fix package errors

Source bash environment variables

Add BASH_ENV variable

Use absolute path for cmake and ctest

Add library path

Add nebula bin env variable

Test package

Test env variable for library path

Fix package project path error

Update env variables

Fix system check branch error

* Rename ci workflow file

* Fix package error

* Rename and cancel multithreads for ctest in CI

* Try test in singlethread and add tag release package trigger

* Fix uploaded artifacts name

Ignore docs path for build workflow

Use short commit sha when no version

Exact match

Add badge image link

Address comments of PR review
parent 8d5eaed3
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,16 @@
<img src="docs/logo.png"/>
<br> English | <a href="README-CN.md">中文</a>
<br>A distributed, scalable, lighting-fast graph database<br>
<a href="https://github.com/vesoft-inc/nebula/actions?workflow=build">
<img src="https://github.com/vesoft-inc/nebula/workflows/build/badge.svg" />
</a>
<a href="https://github.com/vesoft-inc/nebula/actions?workflow=docker">
<img src="https://github.com/vesoft-inc/nebula/workflows/docker/badge.svg" />
</a>
<a href="https://github.com/vesoft-inc/nebula/actions?workflow=package">
<img src="https://github.com/vesoft-inc/nebula/workflows/package/badge.svg" />
</a>
<br>
</p>
<!-- <p align="center">
......
......@@ -18,6 +18,8 @@
# Destination filename of stdout and stderr, which will also reside in log_dir.
--stdout_log_file=stdout.log
--stderr_log_file=stderr.log
# Copy log messages at or above this level to stderr in addition to logfiles. The numbers of severity levels INFO, WARNING, ERROR, and FATAL are 0, 1, 2, and 3, respectively.
--stderrthreshold=2
########## networking ##########
# Meta Server Address
......
......@@ -15,17 +15,18 @@ License: Apache 2.0 + Common Clause 1.0
BuildRoot:%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
# TODO: we should check dependence's version after adapt to different system versions
BuildRequires: make
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: unzip
BuildRequires: readline
BuildRequires: ncurses
BuildRequires: ncurses-devel
BuildRequires: python
BuildRequires: java-1.8.0-openjdk
BuildRequires: java-1.8.0-openjdk-devel
# BuildRequires only find dynamic libraries but all of nebula dependencies have been compiled to static libraries, so comment out them temporarily
# BuildRequires: make
# BuildRequires: autoconf
# BuildRequires: automake
# BuildRequires: libtool
# BuildRequires: unzip
# BuildRequires: readline
# BuildRequires: ncurses
# BuildRequires: ncurses-devel
# BuildRequires: python
# BuildRequires: java-1.8.0-openjdk
# BuildRequires: java-1.8.0-openjdk-devel
%description
A high performance distributed graph database
......@@ -33,7 +34,7 @@ A high performance distributed graph database
%prep
%build
cmake -DCMAKE_BUILD_TYPE=Release -DNEBULA_BUILD_VERSION=%{_version} -DCMAKE_INSTALL_PREFIX=%{_install_dir} -DENABLE_TESTING=OFF./
cmake -DCMAKE_BUILD_TYPE=Release -DNEBULA_BUILD_VERSION=%{_version} -DCMAKE_INSTALL_PREFIX=%{_install_dir} -DENABLE_TESTING=OFF ./
make -j$(nproc)
%install
......
#!/bin/bash
#!/usr/bin/env bash
#
# package nebula as one deb/rpm
# ./package.sh -v <version> -t <packageType> -s <strip_enable> the version should be match tag name
# ./package.sh -v <version> -s <strip_enable> the version should be match tag name
#
set -ex
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:$LIBRARY_PATH
NEBULA_DEP_BIN=/opt/nebula/third-party/bin
version=""
pType=""
strip_enable="FALSE"
usage="Usage: ${0} -v <version> -t <RPM/DEB> -s <TRUE/FALSE>"
usage="Usage: ${0} -v <version> -s <TRUE/FALSE>"
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"/../
while getopts v:t:s: opt;
do
......@@ -15,9 +21,6 @@ do
v)
version=$OPTARG
;;
t)
pType=$OPTARG
;;
s)
strip_enable=$OPTARG
;;
......@@ -28,7 +31,9 @@ do
done
# version is null, get from tag name
[[ -z $version ]] && version=`git describe --match 'v*' | sed 's/^v//'`
[[ -z $version ]] && version=`git describe --exact-match --abbrev=0 --tags | sed 's/^v//'`
# version is null, get from short commit sha
[[ -z $version ]] && version=`git describe --always`
if [[ -z $version ]]; then
echo "version is null, exit"
......@@ -37,24 +42,18 @@ if [[ -z $version ]]; then
fi
if [[ -z $pType ]] || ([[ $pType != RPM ]] && [[ $pType != DEB ]]); then
echo "package type is null or type is wrong, exit"
echo ${usage}
exit -1
fi
if [[ $strip_enable != TRUE ]] && [[ $strip_enable != FALSE ]]; then
echo "strip enable is wrong, exit"
echo ${usage}
exit -1
fi
echo "current version is [ $version ], package type is [$pType], strip enable is [$strip_enable]"
echo "current version is [ $version ], strip enable is [$strip_enable]"
# args: <version>
function build {
version=$1
build_dir=../build
build_dir=$PROJECT_DIR/build
if [[ -d $build_dir ]]; then
rm -rf ${build_dir}/*
else
......@@ -63,7 +62,7 @@ function build {
pushd ${build_dir}
cmake -DCMAKE_BUILD_TYPE=Release -DNEBULA_BUILD_VERSION=${version} -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF ..
$NEBULA_DEP_BIN/cmake -DCMAKE_C_COMPILER=$NEBULA_DEP_BIN/gcc -DCMAKE_CXX_COMPILER=$NEBULA_DEP_BIN/g++ -DCMAKE_BUILD_TYPE=Release -DNEBULA_BUILD_VERSION=${version} -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF $PROJECT_DIR
if !( make -j$(nproc) ); then
echo ">>> build nebula failed <<<"
......@@ -73,46 +72,48 @@ function build {
popd
}
# args: <pType> <strip_enable>
# args: <strip_enable>
function package {
pType=$1
strip_enable=$2
pushd ../build/
strip_enable=$1
pushd $PROJECT_DIR/build/
args=""
[[ $strip_enable == TRUE ]] && args="-D CPACK_STRIP_FILES=TRUE -D CPACK_RPM_SPEC_MORE_DEFINE="
if !( cpack -G ${pType} --verbose $args ); then
echo ">>> package nebula failed <<<"
exit -1
fi
systemVersion=""
tagetPackageName=""
pType="RPM"
if [[ -f "/etc/redhat-release" ]]; then
# TODO: update minor version according to OS
centosMajorVersion=`cat /etc/redhat-release | tr -dc '0-9.' | cut -d \. -f1`
[[ "$centosMajorVersion" == "7" ]] && tagetPackageName="nebula-${version}.el7-5.x86_64.rpm"
[[ "$centosMajorVersion" == "6" ]] && tagetPackageName="nebula-${version}.el6-5.x86_64.rpm"
elif [[ -f "/etc/lsb-release" ]]; then
ubuntuVersion=`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d "=" -f 2 | sed 's/\.//'`
tagetPackageName="nebula-${version}.ubuntu${ubuntuVersion}.amd64.deb"
pType="DEB"
fi
if [[ ${pType} == RPM ]]; then
# rename rpm file
if [[ `cat /etc/redhat-release | grep 7.5` == "" ]]; then
systemVersion="el6-5"
else
systemVersion="el7-5"
fi
rpmName=`ls | grep nebula-graph | grep rpm | grep ${version}`
tagetPackageName=nebula-${version}.${systemVersion}.x86_64.rpm
mv ${rpmName} ${tagetPackageName}
if [[ "$tagetPackageName" == "" ]]; then
echo ">>> Unsupported system <<<"
exit -1
fi
if !( $NEBULA_DEP_BIN/cpack -G ${pType} --verbose $args ); then
echo ">>> package nebula failed <<<"
exit -1
else
# rename deb file
systemVersion=`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d "=" -f 2 | sed 's/\.//'`
systemVersion=ubuntu${systemVersion}
debName=`ls | grep nebula-graph | grep deb | grep ${version}`
tagetPackageName=nebula-${version}.${systemVersion}.amd64.deb
mv ${debName} ${tagetPackageName}
# rename package file
pkgName=`ls | grep nebula-graph | grep ${version}`
outputDir=$PROJECT_DIR/build/cpack_output
mkdir -p ${outputDir}
mv ${pkgName} ${outputDir}/${tagetPackageName}
echo "####### taget package file is ${outputDir}/${tagetPackageName}"
fi
echo "####### taget package file is `pwd`/${tagetPackageName}"
popd
}
# The main
build $version
package $pType $strip_enable
package $strip_enable
......@@ -53,12 +53,6 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
if (FLAGS_daemonize) {
google::SetStderrLogging(google::FATAL);
} else {
google::SetStderrLogging(google::INFO);
}
// Setup logging
auto status = setupLogging();
if (!status.ok()) {
......
......@@ -14,13 +14,6 @@
namespace nebula {
namespace graph {
GraphService::GraphService() {
}
GraphService::~GraphService() = default;
Status GraphService::init(std::shared_ptr<folly::IOThreadPoolExecutor> ioExecutor) {
sessionManager_ = std::make_unique<SessionManager>();
executionEngine_ = std::make_unique<ExecutionEngine>();
......
......@@ -9,9 +9,9 @@
#include "base/Base.h"
#include "gen-cpp2/GraphService.h"
#include "graph/SessionManager.h"
#include "graph/ExecutionEngine.h"
#include "graph/Authenticator.h"
#include "graph/ExecutionEngine.h"
#include "graph/SessionManager.h"
namespace folly {
class IOThreadPoolExecutor;
......@@ -22,8 +22,8 @@ namespace graph {
class GraphService final : public cpp2::GraphServiceSvIf {
public:
GraphService();
~GraphService();
GraphService() = default;
~GraphService() = default;
Status MUST_USE_RESULT init(std::shared_ptr<folly::IOThreadPoolExecutor> ioExecutor);
......@@ -44,6 +44,6 @@ private:
std::unique_ptr<Authenticator> authenticator_;
};
} // namespace graph
} // namespace nebula
#endif // GRAPH_GRAPHSERVICE_H_
} // namespace graph
} // namespace nebula
#endif // GRAPH_GRAPHSERVICE_H_
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment