From 03905e1abe48dea773c816cc11bea3eb4d78c2b9 Mon Sep 17 00:00:00 2001 From: eugene Date: Fri, 7 Jun 2024 17:03:01 -0400 Subject: [PATCH 1/3] allow builds with any tags --- .github/workflows/cmake.yml | 4 +++- .github/workflows/draft-release.yml | 1 + CMakeLists.txt | 28 +++++++++++++++++++++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index d7f1a39a..cd9106ab 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,7 +2,9 @@ name: CI build on: pull_request: - branches: [ main ] + branches: + - main + - release-* workflow_dispatch: workflow_call: diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index a095d8f7..806fa856 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - release-1.x jobs: update_release_draft: diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f4ee62b..ca906f62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ if(NOT GIT_VERSION AND GIT_FOUND) message("Found Git executable \"${GIT_EXECUTABLE}\".") # Generate a git-describe version string from Git repository tags execute_process( - COMMAND ${GIT_EXECUTABLE} describe --tags --dirty=-local --match "v*" + COMMAND ${GIT_EXECUTABLE} describe --long --tags WORKING_DIRECTORY ${CMAKE_BINARY_DIR} OUTPUT_VARIABLE GIT_VERSION RESULT_VARIABLE GIT_ERROR_CODE @@ -42,7 +42,17 @@ if(NOT GIT_VERSION) set(PROJECT_SEMVER "${DUMMY_SEMVER}") message(WARNING "GIT_VERSION not set. Using dummy PROJECT_SEMVER: \"${PROJECT_SEMVER}\", GIT_VERSION: \"${GIT_VERSION}\".") else() - string(REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" PROJECT_SEMVER "${GIT_VERSION}") + # tag-tweak-slug + string(REGEX REPLACE "(.*)-([0-9]+)-(.*)" "\\1" PROJECT_TAG "${GIT_VERSION}") + string(REGEX REPLACE "(.*)-([0-9]+)-(.*)" "\\2" PROJECT_TWEAK "${GIT_VERSION}") + string(REGEX REPLACE "(.*)-([0-9]+)-(.*)" "\\3" PROJECT_SLUG "${GIT_VERSION}") + + # extract semver from pre-release tags like 2.0.0-alpha + string(REGEX MATCH "([0-9]+.[0-9]+.[0-9]+)" PROJECT_SEMVER ${PROJECT_TAG}) + + message(NOTICE "tag = ${PROJECT_TAG}") + message(NOTICE "tweak = ${PROJECT_TWEAK}") + message(NOTICE "slug = ${PROJECT_SLUG}") if(NOT PROJECT_SEMVER) set(PROJECT_SEMVER "${DUMMY_SEMVER}") message(WARNING "SEMVER could not be parsed from GIT_VERSION: ${GIT_VERSION}. Setting to PROJECT_SEMVER: ${PROJECT_SEMVER}") @@ -64,10 +74,22 @@ if((NOT DISABLE_SEMVER_VERIFICATION) AND PROJECT_SEMVER VERSION_EQUAL "${DUMMY_S message(FATAL_ERROR "SEMVER Verification failed. A valid SEMVER is required for correct package version composition. To override, set DISABLE_SEMVER_VERIFICATION=ON.") endif() +unset(GIT_VERSION CACHE) +if (PROJECT_TWEAK STREQUAL "0") + set(GIT_VERSION ${PROJECT_TAG}) +else () + set(GIT_VERSION "${PROJECT_TAG}.${PROJECT_TWEAK}") +endif () + project(ziti-tunnel-sdk-c - VERSION "${PROJECT_SEMVER}" + DESCRIPTION "OpenZiti tunneler SDK" + HOMEPAGE_URL "https://github.com/openziti/ziti-tunneler-sdk-c" LANGUAGES C CXX) +set(PROJECT_VERSION ${version}) +message(NOTICE "ver = ${PROJECT_VERSION}" +) + if(NOT BUILD_DIST_PACKAGES) include(CPack) set(CPACK_PACKAGE_VENDOR "NetFoundry") From 1095fa9a40f7a91d9c2ee12d0ba5b744ff1abaa9 Mon Sep 17 00:00:00 2001 From: eugene Date: Fri, 7 Jun 2024 17:21:53 -0400 Subject: [PATCH 2/3] cleanup --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ca906f62..17f64cc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,9 +50,6 @@ else() # extract semver from pre-release tags like 2.0.0-alpha string(REGEX MATCH "([0-9]+.[0-9]+.[0-9]+)" PROJECT_SEMVER ${PROJECT_TAG}) - message(NOTICE "tag = ${PROJECT_TAG}") - message(NOTICE "tweak = ${PROJECT_TWEAK}") - message(NOTICE "slug = ${PROJECT_SLUG}") if(NOT PROJECT_SEMVER) set(PROJECT_SEMVER "${DUMMY_SEMVER}") message(WARNING "SEMVER could not be parsed from GIT_VERSION: ${GIT_VERSION}. Setting to PROJECT_SEMVER: ${PROJECT_SEMVER}") @@ -87,8 +84,6 @@ project(ziti-tunnel-sdk-c LANGUAGES C CXX) set(PROJECT_VERSION ${version}) -message(NOTICE "ver = ${PROJECT_VERSION}" -) if(NOT BUILD_DIST_PACKAGES) include(CPack) From 1971efc551cf9ae959194681f96247d7ce6edcc0 Mon Sep 17 00:00:00 2001 From: eugene Date: Fri, 7 Jun 2024 17:23:19 -0400 Subject: [PATCH 3/3] set project_version --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17f64cc9..69cec7a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,7 +83,7 @@ project(ziti-tunnel-sdk-c HOMEPAGE_URL "https://github.com/openziti/ziti-tunneler-sdk-c" LANGUAGES C CXX) -set(PROJECT_VERSION ${version}) +set(PROJECT_VERSION ${GIT_VERSION}) if(NOT BUILD_DIST_PACKAGES) include(CPack)