14 group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
15 cancel-in-progress: true
20 if: startsWith(github.ref_name, 'v')
21 runs-on: ubuntu-latest
24 uses: actions/checkout@v4
28 - name: Check Git tag format
30 _tag="${{ github.ref_name }}"
31 if ! printf "%s\n" "$_tag" | grep -q -P '^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-(alpha|beta|rc)\.(0|[1-9][0-9]*))?$'; then
32 printf '[ERROR]: Git tag (%s) wrong format\n' "$_tag"
39 if: always() && (needs.version.result == 'success' || needs.version.result == 'skipped')
40 runs-on: ubuntu-latest
43 uses: actions/checkout@v4
48 uses: actions/setup-python@v4
50 - name: Install cmakelang
51 run: pip install cmakelang[YAML]
56 -not -path './build/*' \
69 # TODO(carlocorradini) Clang Tidy
74 -not -path './build/*' \
75 -not -path './cmake/CPM.cmake' \
77 -name 'CMakeLists.txt' \
87 -not -path './build/*' \
88 -not -path './cmake/CPM.cmake' \
90 -name 'CMakeLists.txt' \
97 # TODO(carlocorradini) Cppcheck
99 # TODO(carlocorradini) Cpplint
104 if: needs.code.result == 'success'
108 # TODO(carlocorradini) Add macos-latest
109 os: [ubuntu-latest, windows-latest]
110 build: [Debug, Release]
112 runs-on: ${{ matrix.os }}
115 uses: actions/checkout@v4
119 - name: Install Doxygen
120 uses: ssciwr/doxygen-install@v1
122 - name: Configure CMake
123 run: cmake -S . -B ./build -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DDIS_VERSION=${{ matrix.dis }} -DBUILD_SHARED_LIBS=OFF -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON
126 run: cmake --build ./build --config ${{ matrix.build }}
129 run: ctest --verbose --test-dir ./build/tests --build-config ${{ matrix.build }}
131 # TODO(carlocorradini) Code coverage