Skip to content

Commit 27b69e9

Browse files
authored
Merge pull request #325 from BigVan/main
[CI/CD] add 'release number' and 'pre-release' version
2 parents 512fe49 + 00cd32c commit 27b69e9

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

.github/workflows/release.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,24 @@ jobs:
3838
RELEASE_VERSION=${{ env.RELEASE_VERSION }}
3939
if [[ -z ${RELEASE_VERSION} ]]; then
4040
git fetch --tags
41-
RELEASE_VERSION=$(git tag --sort=v:refname -l v* | tail -1)
41+
RELEASE_VERSION=$(git tag --sort=v:refname -l v* | tail -1) # v1.1.3
42+
version="${RELEASE_VERSION#v}"
43+
44+
IFS='.' read -ra version_parts <<< "$version"
45+
46+
major_version=${version_parts[0]}
47+
minor_version=${version_parts[1]}
48+
patch_version=${version_parts[2]}
49+
50+
patch_version=$((patch_version + 1))
51+
52+
new_version="$major_version.$minor_version.$patch_version"
53+
RELEASE_VERSION="${new_version}rc" #1.1.4rc
4254
fi
4355
RELEASE_VERSION=${RELEASE_VERSION#v}
44-
echo "RELEASE_VERSION=${RELEASE_VERSION}"
56+
RELEASE_NO="$(date +%Y%m%d).$(git rev-parse --short HEAD)"
57+
58+
echo "RELEASE_VERSION=${RELEASE_VERSION} RELEASE_NO=${RELEASE_NO}"
4559
4660
# parse BUILD_IMAGE and OS from IMAGE
4761
BUILD_IMAGE=${IMAGE/_/:}
@@ -52,7 +66,8 @@ jobs:
5266
echo "BUILD_IMAGE=${BUILD_IMAGE}"
5367
echo "OS=${OS}"
5468
55-
docker buildx build --build-arg BUILD_IMAGE=${BUILD_IMAGE} --build-arg OS=${OS} --build-arg RELEASE_VERSION=${RELEASE_VERSION} -f .github/workflows/release/Dockerfile --platform=${{ matrix.platforms }} -o releases/ .
69+
70+
docker buildx build --build-arg BUILD_IMAGE=${BUILD_IMAGE} --build-arg OS=${OS} --build-arg RELEASE_VERSION=${RELEASE_VERSION} --build-arg RELEASE_NO=${RELEASE_NO} -f .github/workflows/release/Dockerfile --platform=${{ matrix.platforms }} -o releases/ .
5671
5772
# remove unused package
5873
if [[ "${OS}" =~ "ubuntu" ]]; then

.github/workflows/release/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ WORKDIR /src
1818
COPY . .
1919
ARG OS
2020
ARG RELEASE_VERSION
21-
RUN ls -l /src && chmod 755 .github/workflows/release/build.sh && .github/workflows/release/build.sh ${OS} ${RELEASE_VERSION}
21+
ARG RELEASE_NO
22+
RUN ls -l /src && chmod 755 .github/workflows/release/build.sh && .github/workflows/release/build.sh ${OS} ${RELEASE_VERSION} ${RELEASE_NO}
2223

2324
FROM scratch AS release
2425
COPY --from=builder /src/build/overlaybd-*.* /

.github/workflows/release/build.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717

1818
OS=${1}
1919
PACKAGE_VERSION=${2}
20+
RELEASE_NO=${3}
2021
ARCH=`uname -m`
2122
BUILD_TYPE="Release"
2223
COMPILER=""
2324
PACKAGE_RELEASE=""
2425
CMAKE="cmake"
2526
CPACK="cpack"
2627

28+
2729
# Install Dependencies
2830
if [[ ${OS} =~ "ubuntu" ]]; then
2931
export DEBIAN_FRONTEND="noninteractive"
@@ -33,20 +35,20 @@ if [[ ${OS} =~ "ubuntu" ]]; then
3335
apt-get install -y uuid-dev libjson-c-dev libkmod-dev libsystemd-dev autoconf automake libtool libpci-dev nasm libzstd-dev libext2fs-dev zlib1g-dev
3436

3537
DISTRO=${OS/:/1~}
36-
PACKAGE_RELEASE="-DPACKAGE_RELEASE=0${DISTRO}"
38+
PACKAGE_RELEASE="-DPACKAGE_RELEASE=${RELEASE_NO}.${DISTRO}"
3739
elif [[ ${OS} =~ "centos" ]]; then
3840
if [[ ${OS} == "centos:7" ]]; then
3941
yum install -y centos-release-scl
4042
yum install -y devtoolset-7-gcc-c++
4143

4244
export PATH="/opt/rh/devtoolset-7/root/usr/bin:$PATH"
43-
PACKAGE_RELEASE="-DPACKAGE_RELEASE=1.el7"
45+
PACKAGE_RELEASE="-DPACKAGE_RELEASE=${RELEASE_NO}.el7"
4446
COMPILER="-DCMAKE_C_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/gcc -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/g++"
4547
elif [[ ${OS} == "centos:8" ]]; then
4648
rm -rf /etc/yum.repos.d/* && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
4749
yum install -y gcc gcc-c++
4850

49-
PACKAGE_RELEASE="-DPACKAGE_RELEASE=1.el8"
51+
PACKAGE_RELEASE="-DPACKAGE_RELEASE=${RELEASE_NO}.el8"
5052
fi
5153

5254
yum install -y epel-release libaio-devel libcurl-devel openssl-devel libnl3-devel e2fsprogs-devel
@@ -57,7 +59,7 @@ elif [[ ${OS} =~ "mariner" ]]; then
5759
yum install -y rpm-build make git wget sudo tar gcc gcc-c++ autoconf automake libtool
5860

5961
DISTRO=${OS/:/.}
60-
PACKAGE_RELEASE="-DPACKAGE_RELEASE=1.${DISTRO}"
62+
PACKAGE_RELEASE="-DPACKAGE_RELEASE=${RELEASE_NO}.${DISTRO}"
6163
fi
6264

6365
if [[ ${ARCH} == "x86_64" ]]; then

CMake/pack.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
1313
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
1414

1515
set(CPACK_RPM_PACKAGE_LICENSE "Apache v2.0")
16+
set(CPACK_RPM_PACKAGE_RELEASE ${PACKAGE_RELEASE})
1617
set(CPACK_RPM_PACKAGE_SUMMARY "Overlaybd backtore for tcmu")
1718
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_RPM_PACKAGE_SUMMARY})
1819

20+
set(CPACK_DEBIAN_PACKAGE_VERSION "${PACKAGE_VERSION}-${PACKAGE_RELEASE}")
21+
1922

2023
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
2124

0 commit comments

Comments
 (0)