Compare commits
18
Commits
develop
...
b717c5f163
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b717c5f163 | ||
|
|
5ddc63abdf | ||
|
|
4e61ef5655 | ||
|
|
361158c343 | ||
|
|
5fd55496bf | ||
|
|
f0d0c4fb1e | ||
|
|
26862bf05f | ||
|
|
b90c98d3ad | ||
|
|
04770e5df2 | ||
|
|
badb4ebf61 | ||
|
|
8c670003b8 | ||
|
|
b3578b0b53 | ||
|
|
714281dbf1 | ||
|
|
f6684bebc9 | ||
|
|
323b6bd464 | ||
|
|
29c49057b4 | ||
|
|
0e0047b946 | ||
|
|
18bc4eb08f |
@@ -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,25 @@ 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_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: |
|
||||||
|
|||||||
@@ -69,3 +69,14 @@ 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)
|
||||||
|
install(TARGETS DataRouter 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}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user