diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e8b6dc4..1339611 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ stages: +- prebuild - build -- upload cache: key: "$CI_PROJECT_NAME-cache" @@ -12,8 +12,6 @@ cache: before_script: - docker info - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - only: - - tags tags: - share @@ -33,11 +31,9 @@ cache: - chmod +x ./ci/travis.sh tags: - share - only: - - tags images_build: - stage: build + stage: prebuild extends: .build_docker_images variables: UNITTEST_IMAGE_TAG: unittest-tsg-diagnose:latest @@ -56,12 +52,46 @@ images_build: - docker save $DNS_IMAGES_TAGE > images/dns.tar -rpm_build: - stage: upload +feature_branch_build: + stage: build + variables: + PACKAGE: 1 + TESTING_VERSION_BUILD: 1 + extends: .build_rpm + script: + - ./ci/travis.sh + dependencies: + - images_build + except: + - tags + - /^dev-.*$/i + - /^rel-.*$/i + - /^master.*$/i + + +develop_build: + stage: build + variables: + PACKAGE: 1 + UPLOAD: 1 + TESTING_VERSION_BUILD: 1 + PULP3_RPM_REPO_NAME: tsg-testing-x86_64.el7 + PULP3_RPM_DIST_NAME: tsg-testing-x86_64.el7 + extends: .build_rpm + script: + - ./ci/travis.sh + dependencies: + - images_build + only: + - /^dev-.*$/i + - /^rel-.*$/i + - /^master.*$/i + +release_build: + stage: build variables: PACKAGE: 1 UPLOAD: 1 - VER_NAME: $CI_COMMIT_REF_NAME PULP3_RPM_REPO_NAME: tsg-stable-x86_64.el7 PULP3_RPM_DIST_NAME: tsg-stable-x86_64.el7 extends: .build_rpm @@ -69,3 +99,5 @@ rpm_build: - ./ci/travis.sh dependencies: - images_build + only: + - tags diff --git a/ci/travis.sh b/ci/travis.sh index 0876df5..2368353 100644 --- a/ci/travis.sh +++ b/ci/travis.sh @@ -37,7 +37,7 @@ mkdir build || true cd build -cmake3 .. +cmake3 -DVERSION_DAILY_BUILD=$TESTING_VERSION_BUILD .. if [ -n "${PACKAGE}" ]; then make package diff --git a/cmake/Version.cmake b/cmake/Version.cmake index 1e04671..8662b7f 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -1,42 +1,48 @@ - -# Using autorevision.sh to generate version information - -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) - -file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR} - FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE - WORLD_READ WORLD_EXECUTE) - -# execute autorevision.sh to generate version information -execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE} OUTPUT_FILE ${__VERSION_CONFIG}) -include(${__VERSION_CONFIG}) - -# extract major, minor, patch version from git tag -string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" TSG_DIAGNOSE_VERSION_MAJOR "${VCS_TAG}") -string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" TSG_DIAGNOSE_VERSION_MINOR "${VCS_TAG}") -string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" TSG_DIAGNOSE_VERSION_PATCH "${VCS_TAG}") - -if(NOT TSG_DIAGNOSE_VERSION_MAJOR) - set(TSG_DIAGNOSE_VERSION_MAJOR 3) -endif() - -if(NOT TSG_DIAGNOSE_VERSION_MINOR) - set(TSG_DIAGNOSE_VERSION_MINOR 0) -endif() - -if(NOT TSG_DIAGNOSE_VERSION_PATCH) - set(TSG_DIAGNOSE_VERSION_PATCH 0) -endif() - -set(TSG_DIAGNOSE_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}.${TSG_DIAGNOSE_VERSION_MINOR}.${TSG_DIAGNOSE_VERSION_PATCH}") -set(TSG_DIAGNOSE_DESCRIBE "${VCS_SHORT_HASH}") -set(TSG_DIAGNOSE_GIT_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}.${TSG_DIAGNOSE_VERSION_MINOR}.${TSG_DIAGNOSE_VERSION_PATCH}-${TSG_DIAGNOSE_DESCRIBE}") -set(TSG_DIAGNOSE_VAR_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}_${TSG_DIAGNOSE_VERSION_MINOR}_${TSG_DIAGNOSE_VERSION_PATCH}_${TSG_DIAGNOSE_DESCRIBE}") - -# print information -message(STATUS "Welcome to TSG_DIAGNOSE, Version: ${TSG_DIAGNOSE_GIT_VERSION}") -add_definitions(-DTSG_DIAGNOSE_GIT_VERSION=\"${TSG_DIAGNOSE_GIT_VERSION}\") -add_definitions(-DTSG_DIAGNOSE_VAR_VERSION=${TSG_DIAGNOSE_VAR_VERSION}) + +# Using autorevision.sh to generate version information + +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) + +file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE) + +# execute autorevision.sh to generate version information +execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE} OUTPUT_FILE ${__VERSION_CONFIG}) +include(${__VERSION_CONFIG}) + +# extract major, minor, patch version from git tag +string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" TSG_DIAGNOSE_VERSION_MAJOR "${VCS_TAG}") +string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" TSG_DIAGNOSE_VERSION_MINOR "${VCS_TAG}") +string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" TSG_DIAGNOSE_VERSION_PATCH "${VCS_TAG}") +string(REGEX REPLACE "[T\\:\\+\\-]" "" TSG_DIAGNOSE_VERSION_DATE "${VCS_DATE}") + +if(VERSION_DAILY_BUILD) + set(TSG_DIAGNOSE_VERSION_PATCH ${TSG_DIAGNOSE_VERSION_PATCH}.${TSG_DIAGNOSE_VERSION_DATE}) +endif() + + +if(NOT TSG_DIAGNOSE_VERSION_MAJOR) + set(TSG_DIAGNOSE_VERSION_MAJOR 3) +endif() + +if(NOT TSG_DIAGNOSE_VERSION_MINOR) + set(TSG_DIAGNOSE_VERSION_MINOR 0) +endif() + +if(NOT TSG_DIAGNOSE_VERSION_PATCH) + set(TSG_DIAGNOSE_VERSION_PATCH 0) +endif() + +set(TSG_DIAGNOSE_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}.${TSG_DIAGNOSE_VERSION_MINOR}.${TSG_DIAGNOSE_VERSION_PATCH}") +set(TSG_DIAGNOSE_DESCRIBE "${VCS_SHORT_HASH}") +set(TSG_DIAGNOSE_GIT_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}.${TSG_DIAGNOSE_VERSION_MINOR}.${TSG_DIAGNOSE_VERSION_PATCH}-${TSG_DIAGNOSE_DESCRIBE}") +set(TSG_DIAGNOSE_VAR_VERSION "${TSG_DIAGNOSE_VERSION_MAJOR}_${TSG_DIAGNOSE_VERSION_MINOR}_${TSG_DIAGNOSE_VERSION_PATCH}_${TSG_DIAGNOSE_DESCRIBE}") + +# print information +message(STATUS "Welcome to TSG_DIAGNOSE, Version: ${TSG_DIAGNOSE_GIT_VERSION}") +add_definitions(-DTSG_DIAGNOSE_GIT_VERSION=\"${TSG_DIAGNOSE_GIT_VERSION}\") +add_definitions(-DTSG_DIAGNOSE_VAR_VERSION=${TSG_DIAGNOSE_VAR_VERSION})