- Linux
- macOS
- Windows
- Git
- bash
- Git, MSYS2, MINGW
- CMake 3.13+
-
Please move after creating the project directory.
mkdir test-project cd test-project git init git submodule add http://github.com/ntoskrnl7/ci-version ./ci-version/bin/init.sh
-
Please write the following files in the project directory.
- Directory structure
📦test-project ┣ 📂.config (*generated by init.sh) ┃ ┗ 📂 ci-version ┃ ┣ 📜major.h ┃ ┗ 📜.... ┣ 📜ci-version.cmake (*generated by init.sh) ┣ 📂ci-version (*submodule) ┣ 📜main.c ┗ 📜CMakeLists.txt
- CMakeLists.txt
cmake_minimum_required(VERSION 3.13) project(test C) add_executable(test main.c) include(ci-version.cmake) ci_version(test)
- main.c
#include <ci-version/version.h> #include <ci-version/semver.h> #include <stdio.h> int main() { puts("Version : "__CI_SEMVER__); return 0; }
-
Perform a build.
cmake -S . -B build cmake --build build
-
Run test
./build/test # Version : 0.0.0-alpha ./ci-version/bin/version.sh # 0.0.0 ./ci-version/bin/semver.sh # 0.0.0-alpha
-
Update Version & Run test
./ci-version/bin/patch.sh cmake --build build ./build/test # Version : 0.0.1-alpha ./ci-version/bin/version.sh # 0.0.1 ./ci-version/bin/semver.sh # 0.0.1-alpha ./ci-version/bin/patch.sh 4 cmake --build build ./build/test # Version : 0.0.4-alpha ./ci-version/bin/version.sh # 0.0.4 ./ci-version/bin/semver.sh # 0.0.4-alpha ./ci-version/bin/minor.sh cmake --build build ./build/test # Version : 0.1.0-alpha ./ci-version/bin/version.sh # 0.1.0 ./ci-version/bin/semver.sh # 0.1.0-alpha ./ci-version/bin/minor.sh 4 cmake --build build ./build/test # Version : 0.4.0-alpha ./ci-version/bin/version.sh # 0.4.0 ./ci-version/bin/semver.sh # 0.4.0-alpha ./ci-version/bin/major.sh cmake --build build ./build/test # Version : 1.0.0-alpha ./ci-version/bin/version.sh # 1.0.0 ./ci-version/bin/semver.sh # 1.0.0-alpha ./ci-version/bin/major.sh 4 cmake --build build ./build/test # Version : 4.0.0-alpha ./ci-version/bin/version.sh # 4.0.0 ./ci-version/bin/semver.sh # 4.0.0-alpha ./ci-version/bin/pre-release.sh beta cmake --build build ./build/test # Version : 4.0.0-beta ./ci-version/bin/version.sh # 4.0.0 ./ci-version/bin/semver.sh # 4.0.0-beta ./ci-version/bin/build-metadata.sh test cmake --build build ./build/test # Version : 4.0.0-beta+test ./ci-version/bin/version.sh # 4.0.0 ./ci-version/bin/semver.sh # 4.0.0-beta+test ./ci-version/bin/build-metadata.sh cmake --build build ./build/test # Version : 4.0.0-beta ./ci-version/bin/version.sh # 4.0.0 ./ci-version/bin/semver.sh # 4.0.0-beta ./ci-version/bin/release.sh cmake --build build ./build/test # Version : 4.0.0 ./ci-version/bin/version.sh # 4.0.0 ./ci-version/bin/semver.sh # 4.0.0
ex) Version : 0.1.2-beta+test
Name | Value |
---|---|
__CI_MAJOR_VERSION__ |
0 |
__CI_MAJOR_VERSION_STR__ |
"0" |
__CI_MINOR_VERSION__ |
1 |
__CI_MINOR_VERSION_STR__ |
"1" |
__CI_PATCH_VERSION__ |
2 |
__CI_PATCH_VERSION_STR__ |
"2" |
__CI_PRE_RELEASE__ |
beta |
__CI_PRE_RELEASE_STR__ |
"beta" |
__CI_BUILD_META_DATA__ |
test |
__CI_BUILD_META_DATA_STR__ |
"test" |
__CI_BUILD_DATE__ |
220202 |
__CI_BUILD_DATE_STR__ |
"220202" |
__CI_VERSION__ |
"0.1.2" |
__CI_SEMVER__ |
"0.1.2-beta+test" |
__CI_SEMANTIC_VERSION__ |
"0.1.2-beta+test" |
cd test
./test.sh