24 Commits
Author SHA1 Message Date
7iwind ccde2f73e9 Merge pull request 'fix: 修正缺失构建平台的错误' (#35) from feature/route into main
CI / host (push) Successful in 7s
CI / cortex-m (push) Successful in 7s
Release / release (push) Successful in 16s
Reviewed-on: #35
2026-07-27 00:30:21 +08:00
7iwind 3b44bd97f7 fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 6s
2026-07-27 00:29:35 +08:00
7iwind c5fea61784 Merge pull request 'fix: 修正缺失构建平台的错误' (#34) from feature/route into main
CI / host (push) Successful in 18s
CI / cortex-m (push) Successful in 3s
Release / release (push) Successful in 9s
Reviewed-on: #34
2026-07-27 00:23:31 +08:00
7iwind 07c4aa316a fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 3s
2026-07-27 00:20:33 +08:00
7iwind 5d1ef621db Merge pull request 'fix: 修正缺失构建平台的错误' (#33) from feature/route into main
CI / host (push) Successful in 2s
CI / cortex-m (push) Successful in 3s
Release / release (push) Successful in 9s
Reviewed-on: #33
2026-07-27 00:15:18 +08:00
7iwind 8fe1b36cdc fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 3s
CI / cortex-m (pull_request) Successful in 4s
2026-07-27 00:15:00 +08:00
7iwind b717c5f163 Merge pull request 'fix: 修正缺失构建平台的错误' (#32) from feature/route into main
CI / host (push) Successful in 8s
CI / cortex-m (push) Successful in 6s
Release / release (push) Failing after 10s
Reviewed-on: #32
2026-07-27 00:13:06 +08:00
7iwind 5ddc63abdf fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 10s
CI / cortex-m (pull_request) Successful in 10s
2026-07-27 00:12:49 +08:00
7iwind 4e61ef5655 Merge pull request 'v1.1.0:fix: 修正缺失构建平台的错误' (#31) from feature/route into main
CI / host (push) Successful in 2s
CI / cortex-m (push) Successful in 3s
Release / release (push) Failing after 4s
Reviewed-on: #31
2026-07-27 00:10:50 +08:00
7iwind 361158c343 fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 3s
CI / cortex-m (pull_request) Successful in 4s
2026-07-27 00:09:45 +08:00
7iwind 5fd55496bf v1.1.0:Merge pull request 'fix: 修正CD错误' (#30) from feature/route into main
CI / host (push) Successful in 3s
CI / cortex-m (push) Successful in 4s
Release / release (push) Successful in 26s
v1.1.0:Reviewed-on: #30
2026-07-27 00:03:44 +08:00
7iwind f0d0c4fb1e fix: 修正CD错误
CI / host (pull_request) Successful in 3s
CI / cortex-m (pull_request) Successful in 4s
2026-07-27 00:02:47 +08:00
7iwind 26862bf05f Merge pull request 'fix: 修正CD错误' (#29) from feature/route into main
CI / host (push) Successful in 2s
CI / cortex-m (push) Successful in 4s
Release / release (push) Failing after 5s
Reviewed-on: #29
2026-07-26 23:56:11 +08:00
7iwind b90c98d3ad fix: 修正CD错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 4s
2026-07-26 23:55:44 +08:00
7iwind 04770e5df2 Merge pull request 'develop' (#28) from develop into main
CI / host (push) Successful in 5s
CI / cortex-m (push) Successful in 7s
Release / release (push) Failing after 6s
Reviewed-on: #28
2026-07-26 23:51:28 +08:00
7iwind badb4ebf61 v1.1.0:Merge pull request 'develop' (#26) from develop into main
CI / host (push) Successful in 5s
CI / cortex-m (push) Successful in 6s
Release / release (push) Failing after 6s
v1.1.0:Reviewed-on: #26
2026-07-26 23:47:02 +08:00
7iwind 8c670003b8 Merge pull request 'v1.1.0' (#24) from develop into main
CI / host (push) Successful in 20s
CI / cortex-m (push) Successful in 6s
Release / release (push) Failing after 9s
v1.0.0:Reviewed-on: #24
2026-07-26 23:42:21 +08:00
7iwind b3578b0b53 Merge pull request 'develop' (#20) from develop into main
Release / release (push) Successful in 10s
Reviewed-on: #20
2026-07-26 22:41:12 +08:00
7iwind 714281dbf1 Merge pull request 'develop' (#18) from develop into main
Release / release (push) Successful in 8s
Reviewed-on: #18
2026-07-26 15:07:38 +08:00
7iwind f6684bebc9 Merge pull request 'develop' (#16) from develop into main
Release / release (push) Failing after 18s
Reviewed-on: #16
2026-07-26 14:54:14 +08:00
7iwind 323b6bd464 Merge pull request 'fix: 优化打包后的目录结构,便于引入' (#14) from feature/route into main
Release / release (push) Failing after 20s
Reviewed-on: #14
2026-07-26 14:45:05 +08:00
7iwind 29c49057b4 Merge pull request 'develop' (#12) from develop into main
Release / release (push) Successful in 19s
Reviewed-on: #12
2026-07-26 13:30:36 +08:00
7iwind 0e0047b946 Merge pull request 'Merge pull request 'feature/route' (#9) from feature/route into develop' (#10) from develop into main
Release / build (map[build_testing:OFF cmake_extra: name:linux-arm64 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-arm64.cmake]) (push) Failing after 8s
Release / build (map[build_testing:OFF cmake_extra: name:linux-armhf toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-armhf.cmake]) (push) Failing after 7s
Release / build (map[build_testing:OFF cmake_extra:-DBUILD_EXAMPLES=OFF -DBUILD_SHARED=OFF name:baremetal-arm32 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake]) (push) Failing after 6s
Release / build (map[build_testing:OFF cmake_extra:-DBUILD_EXAMPLES=OFF name:windows-amd64 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-amd64.cmake]) (push) Failing after 7s
Release / build (map[build_testing:ON cmake_extra: name:linux-amd64 toolchain:]) (push) Failing after 6s
Release / release (push) Has been skipped
Reviewed-on: #10
2026-07-26 13:26:14 +08:00
7iwind 18bc4eb08f Merge pull request 'fix: 修复 bash -e 下,for 循环中 [ -f ... ] && cp ... 里 [ 返回 1 时会触发 set -e 退出脚本。同时 test 需要实际开启 BUILD_TESTING。' (#8) from feature/route into main
Release / build (map[build_testing:OFF cmake_extra: name:linux-arm64 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-arm64.cmake]) (push) Failing after 7s
Release / build (map[build_testing:OFF cmake_extra: name:linux-armhf toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-armhf.cmake]) (push) Failing after 6s
Release / build (map[build_testing:OFF cmake_extra:-DBUILD_EXAMPLES=OFF -DBUILD_SHARED=OFF name:baremetal-arm32 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake]) (push) Failing after 6s
Release / build (map[build_testing:OFF cmake_extra:-DBUILD_EXAMPLES=OFF name:windows-amd64 toolchain:-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-amd64.cmake]) (push) Failing after 7s
Release / build (map[build_testing:ON cmake_extra: name:linux-amd64 toolchain:]) (push) Failing after 6s
Release / release (push) Has been skipped
Reviewed-on: #8
2026-07-26 13:23:55 +08:00
3 changed files with 78 additions and 23 deletions
+23 -19
View File
@@ -53,23 +53,12 @@ jobs:
VERSION="$PR_BODY" VERSION="$PR_BODY"
echo "Found version: $VERSION" echo "Found version: $VERSION"
# 检查远端是否已有此标签 # 创建本地标签(不推送远端)
if git ls-remote --tags origin "$VERSION" 2>/dev/null | grep -q .; then # Gitea Create Release API 会自动在远端创建标签
echo "Tag $VERSION already exists on remote, skipping push"
git tag "$VERSION" 2>/dev/null || true
echo "tag=$VERSION" >> "$GITHUB_OUTPUT"
exit 0
fi
# 创建并推送标签
git config user.email "ci@datarouter" git config user.email "ci@datarouter"
git config user.name "DataRouter CI" git config user.name "DataRouter CI"
git tag -a "$VERSION" -m "Release $VERSION" git tag -a "$VERSION" -m "Release $VERSION" 2>/dev/null || true
echo "Created local tag: $VERSION" echo "Created local tag: $VERSION"
# 使用 origin remote(actions/checkout 已配置好认证)
git push origin "$VERSION" 2>&1
echo "Pushed tag: $VERSION"
echo "tag=$VERSION" >> "$GITHUB_OUTPUT" echo "tag=$VERSION" >> "$GITHUB_OUTPUT"
# ── 读取标签(已有标签 / auto-tag 创建的标签)── # ── 读取标签(已有标签 / auto-tag 创建的标签)──
@@ -96,7 +85,7 @@ jobs:
"linux-arm64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-arm64.cmake" \ "linux-arm64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-arm64.cmake" \
"linux-armhf|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-armhf.cmake" \ "linux-armhf|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-armhf.cmake" \
"windows-amd64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-amd64.cmake -DBUILD_EXAMPLES=OFF" \ "windows-amd64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-amd64.cmake -DBUILD_EXAMPLES=OFF" \
"baremetal-arm32|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake -DBUILD_EXAMPLES=OFF -DBUILD_SHARED=OFF" "baremetal-arm32|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake -DBUILD_EXAMPLES=OFF"
do do
IFS='|' read -r name testing extra <<< "$entry" IFS='|' read -r name testing extra <<< "$entry"
echo ">>> Building $name" echo ">>> Building $name"
@@ -108,11 +97,26 @@ jobs:
cmake --install "build-$name" --prefix "dist/$pkg" cmake --install "build-$name" --prefix "dist/$pkg"
done done
- name: Cortex-M compile matrix - name: Cortex-M build & package
run: | run: |
cmake -S . -B build-cortex-m -DDR_COMPILE_CHECK=ON for name in cm3 cm4-soft cm4-hard cm7-soft cm7-hard; do
cmake --build build-cortex-m --parallel $(nproc) case $name in
echo "--- Cortex-M build matrix: all variants passed ---" cm3) flags="-mcpu=cortex-m3 -mthumb -mfloat-abi=soft" ;;
cm4-soft) flags="-mcpu=cortex-m4 -mthumb -mfloat-abi=soft" ;;
cm4-hard) flags="-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard" ;;
cm7-soft) flags="-mcpu=cortex-m7 -mthumb -mfloat-abi=soft" ;;
cm7-hard) flags="-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard" ;;
esac
echo ">>> Building $name"
cmake -S . -B "build-$name" \
-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF \
-DCMAKE_C_COMPILER=arm-none-eabi-gcc \
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_C_FLAGS="$flags"
cmake --build "build-$name"
cmake --install "build-$name" --prefix "dist/datarouter-$name"
done
echo "--- Cortex-M package build: all variants passed ---"
- name: Create release & upload assets - name: Create release & upload assets
run: | run: |
+53 -2
View File
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(DataRouter C) project(DataRouter VERSION 1.1.0 LANGUAGES C)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
@@ -56,7 +56,10 @@ endif()
# ── 常规库构建 ──────────────────────────────────────────────── # ── 常规库构建 ────────────────────────────────────────────────
add_library(DataRouter STATIC datarouter.c) add_library(DataRouter STATIC datarouter.c)
target_include_directories(DataRouter PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(DataRouter PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
if(BUILD_EXAMPLES OR NOT DEFINED BUILD_EXAMPLES) if(BUILD_EXAMPLES OR NOT DEFINED BUILD_EXAMPLES)
add_executable(example example.c) add_executable(example example.c)
@@ -69,3 +72,51 @@ if(BUILD_TESTING OR NOT DEFINED BUILD_TESTING)
target_link_libraries(test_datarouter DataRouter) target_link_libraries(test_datarouter DataRouter)
add_test(NAME datarouter COMMAND test_datarouter) add_test(NAME datarouter COMMAND test_datarouter)
endif() endif()
# ── 安装规则(用于打包发布) ─────────────────────────────
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
set(DataRouter_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/DataRouter")
install(TARGETS DataRouter
EXPORT DataRouterTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/datarouter.h
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config.h
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config_template.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
# ── CMake 包配置文件(find_package(DataRouter) 用) ────
set(PACKAGE_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
set(PACKAGE_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/DataRouterConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfig.cmake
INSTALL_DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
PATH_VARS PACKAGE_INCLUDE_INSTALL_DIR PACKAGE_LIB_INSTALL_DIR
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(EXPORT DataRouterTargets
FILE DataRouterTargets.cmake
DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfigVersion.cmake
DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
)
+2 -2
View File
@@ -1,7 +1,7 @@
@PACKAGE_INIT@ @PACKAGE_INIT@
set_and_check(DataRouter_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") set(DataRouter_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
set_and_check(DataRouter_LIBRARY_DIR "@PACKAGE_LIB_INSTALL_DIR@") set(DataRouter_LIBRARY_DIR "@PACKAGE_LIB_INSTALL_DIR@")
include("${CMAKE_CURRENT_LIST_DIR}/DataRouterTargets.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/DataRouterTargets.cmake" OPTIONAL)