From bc540b79f92e8b4d649002db94f677b493a92b36 Mon Sep 17 00:00:00 2001 From: Georgy Kirichenko Date: Tue, 17 Sep 2024 16:48:48 +0300 Subject: [PATCH] Export version variables --- .github/workflows/release.yml | 25 +++++++++++++++++++++++-- build/Dockerfile.image | 1 - common/version.h | 6 +++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 90407dd6..0ba2f244 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,13 +2,28 @@ name: Release on: push: - branch: - - 'release/*' + tag: + - '*' jobs: + version: + runs-on: ubuntu-latest + outputs: + major: ${{ steps.major.outputs.major }} + minor: ${{ steps.minor.outputs.minor }} + steps: + - id: major + run: echo "major=$([[ ${{github.ref_name}} =~ ([0-9]*) ]] && echo ${BASH_REMATCH[1]})" >> "$GITHUB_OUTPUT" + - id: minor + run: | + MINOR=$([[ ${{github.ref_name}} =~ [0-9]*.([0-9]*) ]] && echo ${BASH_REMATCH[1]}) + SUBMINOR=$([[ ${{github.ref_name}} =~ [0-9]*.[0-9]*.([0-9]*) ]] && echo ${BASH_REMATCH[1]}) + let "MINOR = 65536 * ${SUBMINOR} + ${MINOR}" + echo "minor=${MINOR}" >> "$GITHUB_OUTPUT" build-debian-package-jammy: name: build-image runs-on: ubuntu-latest + needs: [version] permissions: packages: write contents: read @@ -34,6 +49,12 @@ jobs: with: context: . file: ./build/Dockerfile.image + build-args: | + YANET_VERSION_MAJOR=${{needs.version.outputs.major}} + YANET_VERSION_MINOR=${{needs.version.outputs.minor}} + YANET_VERSION_REVISION=${{github.run_number}} + YANET_VERSION_HASH=${{github.sha}} + YANET_VERSION_CUSTOM=stable push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/build/Dockerfile.image b/build/Dockerfile.image index 2380b47a..446e31fd 100644 --- a/build/Dockerfile.image +++ b/build/Dockerfile.image @@ -28,7 +28,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ RUN python3 -m pip install meson==0.61.2 - FROM environment AS builder ARG YANET_VERSION_MAJOR=0 diff --git a/common/version.h b/common/version.h index 59134a3f..35064173 100644 --- a/common/version.h +++ b/common/version.h @@ -59,7 +59,11 @@ inline std::string version_custom() inline std::string version_to_string(const unsigned int major = YANET_VERSION_MAJOR, const unsigned int minor = YANET_VERSION_MINOR) { - std::string version(std::to_string(major) + "." + std::to_string(minor)); + std::string version(std::to_string(major) + "." + std::to_string(minor & 0xffff)); + if (minor & 0xffff0000) + { + version += "." + std::to_string(minor >> 16); + } return version; }