diff --git a/.github/workflows/diff.yaml b/.github/workflows/diff.yaml index eabd335bd..73290a0b4 100644 --- a/.github/workflows/diff.yaml +++ b/.github/workflows/diff.yaml @@ -48,6 +48,22 @@ jobs: cd tests/stress ./continuous_integration + - name: Create community DEB package + run: | + # Activate toolchain. + source /opt/toolchain-v2/activate + + # Create community DEB package. + cd build + mkdir output && cd output + cpack -G DEB --config ../CPackConfig.cmake + + - name: Save community DEB package + uses: actions/upload-artifact@v2 + with: + name: "Community DEB package" + path: build/output/memgraph*.deb + coverage_build: name: "Coverage build" runs-on: [self-hosted, General, Linux, X64, Debian10] @@ -288,3 +304,19 @@ jobs: cd tests/stress source ve3/bin/activate python3 durability --num-steps 5 + + - name: Create enterprise DEB package + run: | + # Activate toolchain. + source /opt/toolchain-v2/activate + + # Create enterprise DEB package. + cd build + mkdir output && cd output + cpack -G DEB --config ../CPackConfig.cmake + + - name: Save enterprise DEB package + uses: actions/upload-artifact@v2 + with: + name: "Enterprise DEB package" + path: build/output/memgraph*.deb diff --git a/CMakeLists.txt b/CMakeLists.txt index 1214b38bc..7ca9ac487 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,28 +67,46 @@ set(get_version_script "${CMAKE_SOURCE_DIR}/release/get_version.py") # Get version that should be used in the binary. execute_process( OUTPUT_VARIABLE MEMGRAPH_VERSION + RESULT_VARIABLE MEMGRAPH_VERSION_RESULT COMMAND "${get_version_script}" ${get_version_enterprise} "${MEMGRAPH_OVERRIDE_VERSION}" "${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}" ) +if(MEMGRAPH_VERSION_RESULT AND NOT MEMGRAPH_VERSION_RESULT EQUAL 0) + message(FATAL_ERROR "Unable to get Memgraph version.") +else() + MESSAGE(STATUS "Memgraph version: ${MEMGRAPH_VERSION}") +endif() # Get version that should be used in the DEB package. execute_process( OUTPUT_VARIABLE MEMGRAPH_VERSION_DEB + RESULT_VARIABLE MEMGRAPH_VERSION_DEB_RESULT COMMAND "${get_version_script}" ${get_version_enterprise} --variant deb "${MEMGRAPH_OVERRIDE_VERSION}" "${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}" ) +if(MEMGRAPH_VERSION_DEB_RESULT AND NOT MEMGRAPH_VERSION_DEB_RESULT EQUAL 0) + message(FATAL_ERROR "Unable to get Memgraph DEB version.") +else() + MESSAGE(STATUS "Memgraph DEB version: ${MEMGRAPH_VERSION_DEB}") +endif() # Get version that should be used in the RPM package. execute_process( OUTPUT_VARIABLE MEMGRAPH_VERSION_RPM + RESULT_VARIABLE MEMGRAPH_VERSION_RPM_RESULT COMMAND "${get_version_script}" ${get_version_enterprise} --variant rpm "${MEMGRAPH_OVERRIDE_VERSION}" "${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}" ) +if(MEMGRAPH_VERSION_RPM_RESULT AND NOT MEMGRAPH_VERSION_RPM_RESULT EQUAL 0) + message(FATAL_ERROR "Unable to get Memgraph RPM version.") +else() + MESSAGE(STATUS "Memgraph RPM version: ${MEMGRAPH_VERSION_RPM}") +endif() # We want the above variables to be updated each time something is committed to # the repository. That is why we include a dependency on the current git HEAD diff --git a/release/get_version.py b/release/get_version.py index db4c22507..1d5865837 100755 --- a/release/get_version.py +++ b/release/get_version.py @@ -173,6 +173,20 @@ if args.version: suffix=args.suffix), end="") sys.exit(0) +# Within CI, after the regular checkout, master is sometimes (e.g. in the case +# of an epic or task branch) NOT created as a local branch. cpack depends on +# variables generated by calling this script during the cmake phase. This +# script needs master to be the local branch. `git fetch origin master:master` +# is creating the local master branch without checking it out. Does nothing if +# master is already there. +try: + current_branch = get_output("git", "rev-parse", "--abbrev-ref", "HEAD") + if current_branch != "master": + get_output("git", "fetch", "origin", "master:master") +except Exception: + print("Fatal error while ensuring local master branch.") + sys.exit(1) + # Get current commit hashes. current_hash = get_output("git", "rev-parse", "HEAD") current_hash_short = get_output("git", "rev-parse", "--short", "HEAD")