diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d61707..7120b8b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ variables: GIT_STRATEGY: "clone" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ INSTALL_PREFIX: "/opt/MESA/lib/" - INSTALL_DEPENDENCY_LIBRARY: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel sapp-devel framework_env libMESA_prof_load-devel sapp-devel openssl-devel + INSTALL_DEPENDENCY_LIBRARY: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel sapp-devel framework_env libMESA_prof_load-devel sapp-devel openssl-devel libasan stages: - build @@ -47,6 +47,11 @@ develop_build_debug: variables: BUILD_TYPE: Debug PACKAGE: 1 + UPLOAD_RPM: 1 + ASAN_OPTION: ADDRESS + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: protocol-testing-x86_64.el7 + PULP3_DIST_NAME: protocol-testing-x86_64.el7 artifacts: name: "quic-$CI_COMMIT_REF_NAME-debug" paths: @@ -61,6 +66,11 @@ develop_build_release: variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 + UPLOAD_RPM: 1 + ASAN_OPTION: ADDRESS + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: protocol-testing-x86_64.el7 + PULP3_DIST_NAME: protocol-testing-x86_64.el7 artifacts: name: "quic-$CI_COMMIT_REF_NAME-release" paths: @@ -69,13 +79,29 @@ develop_build_release: - /^develop.*$/i - /^master.*$/i +release_build_debug: + stage: build + variables: + BUILD_TYPE: Debug + PACKAGE: 1 + UPLOAD_RPM: 1 + PULP3_REPO_NAME: protocol-stable-x86_64.el7 + PULP3_DIST_NAME: protocol-stable-x86_64.el7 + extends: .build_by_travis + artifacts: + name: "quic-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - tags release_build_release: stage: build variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 - UPLOAD: 1 + UPLOAD_RPM: 1 + UPLOAD_SYMBOL_FILES: 1 SYMBOL_TARGET: quic PULP3_REPO_NAME: protocol-stable-x86_64.el7 PULP3_DIST_NAME: protocol-stable-x86_64.el7 diff --git a/ci/travis.sh b/ci/travis.sh index ccfe6b2..56f0553 100644 --- a/ci/travis.sh +++ b/ci/travis.sh @@ -43,7 +43,8 @@ cd build cmake3 -DCMAKE_CXX_FLAGS=$CXX_FLAGS \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ - -DENABLE_DEVEL=$ENABLE_DEVEL_SWITCH \ + -DASAN_OPTION=$ASAN_OPTION \ + -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD \ .. make @@ -52,10 +53,12 @@ if [ -n "${PACKAGE}" ]; then make package fi -if [ -n "${UPLOAD}" ]; then +if [ -n "${UPLOAD_RPM}" ]; then cp ~/rpm_upload_tools.py ./ python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm +fi +if [ -n "${UPLOAD_SYMBOL_FILES}" ]; then rpm -i $SYMBOL_TARGET*debuginfo*.rpm _symbol_file=`find /usr/lib/debug/ -name "$SYMBOL_TARGET*.so*.debug"` cp $_symbol_file ${_symbol_file}info.${CI_COMMIT_SHORT_SHA} diff --git a/cmake/Package.cmake b/cmake/Package.cmake index d0b19e4..b4746dd 100644 --- a/cmake/Package.cmake +++ b/cmake/Package.cmake @@ -14,8 +14,8 @@ set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}") execute_process(COMMAND bash -c "echo -ne \"`uname -r | awk -F'.' '{print $5\".\"$6\".\"$7}'`\"" OUTPUT_VARIABLE SYSTEM_VERSION) -execute_process(COMMAND sh changelog.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake) -SET(CPACK_RPM_CHANGELOG_FILE ${PROJECT_SOURCE_DIR}/cmake/changelog.txt) +execute_process(COMMAND sh changelog.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake) +SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt) # RPM Build set(CPACK_GENERATOR "RPM") diff --git a/cmake/Version.cmake b/cmake/Version.cmake index 24bfa5e..9b05d0b 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -1,7 +1,7 @@ # Using autorevision.sh to generate version information -set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/cmake/autorevision.sh) +set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/autorevision.sh) set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh) set(__VERSION_CACHE ${CMAKE_SOURCE_DIR}/version.txt) set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake) @@ -19,6 +19,11 @@ include(${__VERSION_CONFIG}) string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VCS_TAG}") string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VCS_TAG}") string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VCS_TAG}") +string(REGEX REPLACE "[T\\:\\+\\-]" "" VERSION_DATE "${VCS_DATE}") + +if(VERSION_DAILY_BUILD) + set(VERSION_PATCH ${VERSION_PATCH}.${VERSION_DATE}) +endif() if(NOT VERSION_MAJOR) set(VERSION_MAJOR 1) @@ -38,16 +43,12 @@ set(VERSION_BUILD "${VCS_SHORT_HASH}") # print information message(STATUS "Version: ${VERSION}-${VERSION_BUILD}") -if(NOT DEFINE_GIT_VERSION) - option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" OFF) - -set(GIT_VERSION - "${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}") -string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION}) +option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to TRUE or FALSE" TRUE) if(DEFINE_GIT_VERSION) - add_definitions(-DGIT_VERSION=${GIT_VERSION}) - option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" ON) -endif() + set(GIT_VERSION + "${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}") + string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION}) + add_definitions(-DGIT_VERSION=${GIT_VERSION}) endif() diff --git a/cmake/changelog.sh b/cmake/changelog.sh index 7d8bf7f..67f995f 100644 --- a/cmake/changelog.sh +++ b/cmake/changelog.sh @@ -1,4 +1,4 @@ #!/bin/sh - +work_path=$1 branch=`git status | grep branch | awk '{print $NF}'` -git log --branches=$branch --no-merges --date=local --show-signature --pretty="* %ad %an %ae %nhash: %H%ncommit:%n%B" | awk -F"-" '{print "- "$0}' | sed 's/- \*/\*/g' | sed 's/- $//g' | sed 's/-/ -/g' | sed 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g' > changelog.txt +git log --branches=$branch --no-merges --date=local --show-signature --pretty="* %ad %an %ae %nhash: %H%ncommit:%n%B" | awk -F"-" '{print "- "$0}' | sed 's/- \*/\*/g' | sed 's/- $//g' | sed 's/-/ -/g' | sed 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g' > $work_path/changelog.txt diff --git a/cmake/preInstall.sh b/cmake/preInstall.sh index 765e889..d060bc9 100644 --- a/cmake/preInstall.sh +++ b/cmake/preInstall.sh @@ -4,7 +4,7 @@ DST=${RPM_INSTALL_PREFIX} mkdir -p ${DST}/plug/protocol/ touch ${DST}/plug/conflist.inf -mkdir ${DST}/etc/ +mkdir -p ${DST}/etc/ touch ${DST}/etc/entrylist.conf if [[ -z `grep -rn 'quic.inf' ${DST}/plug/conflist.inf` ]];then