Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a92e2ccfa | ||
|
|
b98236466c | ||
|
|
5aba22d8e9 | ||
|
|
052df2fc21 | ||
|
|
dee130197c | ||
|
|
d0500151ab |
@@ -15,8 +15,6 @@ jobs:
|
|||||||
- name: Auto-tag from merged PR
|
- name: Auto-tag from merged PR
|
||||||
id: autotag
|
id: autotag
|
||||||
run: |
|
run: |
|
||||||
set -e
|
|
||||||
|
|
||||||
# 已有标签 → 跳过
|
# 已有标签 → 跳过
|
||||||
EXISTING=$(git tag --points-at HEAD | grep '^v' | head -n1)
|
EXISTING=$(git tag --points-at HEAD | grep '^v' | head -n1)
|
||||||
if [ -n "$EXISTING" ]; then
|
if [ -n "$EXISTING" ]; then
|
||||||
@@ -25,7 +23,7 @@ jobs:
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 非 merge commit → 跳过(直接 push 不处理)
|
# 非 merge commit → 跳过
|
||||||
PARENTS=$(git log --format="%P" -1 | wc -w)
|
PARENTS=$(git log --format="%P" -1 | wc -w)
|
||||||
if [ "$PARENTS" -lt 2 ]; then
|
if [ "$PARENTS" -lt 2 ]; then
|
||||||
echo "Not a merge commit, skip auto-tag"
|
echo "Not a merge commit, skip auto-tag"
|
||||||
@@ -34,7 +32,7 @@ jobs:
|
|||||||
|
|
||||||
# 从 merge commit message 提取 PR 号
|
# 从 merge commit message 提取 PR 号
|
||||||
COMMIT_MSG=$(git log --format="%B" -1)
|
COMMIT_MSG=$(git log --format="%B" -1)
|
||||||
PR_NUM=$(echo "$COMMIT_MSG" | grep -oP '#\K\d+' | head -1)
|
PR_NUM=$(echo "$COMMIT_MSG" | grep -oP '#\K\d+' | head -1) || true
|
||||||
if [ -z "$PR_NUM" ]; then
|
if [ -z "$PR_NUM" ]; then
|
||||||
echo "No PR number found in merge message"
|
echo "No PR number found in merge message"
|
||||||
exit 0
|
exit 0
|
||||||
@@ -55,14 +53,22 @@ 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
|
||||||
|
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"
|
||||||
echo "Created local tag: $VERSION"
|
echo "Created local tag: $VERSION"
|
||||||
|
|
||||||
# 推送到远端(不会触发本 workflow — 仅匹配 branches: [main])
|
# 使用 origin remote(actions/checkout 已配置好认证)
|
||||||
git push "https://${TOKEN}@${{ gitea.server_url }}/${{ gitea.repository }}" "$VERSION"
|
git push origin "$VERSION" 2>&1
|
||||||
echo "Pushed tag: $VERSION"
|
echo "Pushed tag: $VERSION"
|
||||||
echo "tag=$VERSION" >> "$GITHUB_OUTPUT"
|
echo "tag=$VERSION" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
|||||||
+18
-18
@@ -18,28 +18,28 @@ if(DR_COMPILE_CHECK)
|
|||||||
find_program(ARM_GCC arm-none-eabi-gcc)
|
find_program(ARM_GCC arm-none-eabi-gcc)
|
||||||
if(ARM_GCC)
|
if(ARM_GCC)
|
||||||
message(STATUS "ARM GCC found: ${ARM_GCC}")
|
message(STATUS "ARM GCC found: ${ARM_GCC}")
|
||||||
set(ARM_MATRIX
|
set(VARIANTS cm3 cm4-soft cm4-hard cm7-soft cm7-hard)
|
||||||
"cm3; -mcpu=cortex-m3 -mthumb -mfloat-abi=soft"
|
set(FLAG_LIST
|
||||||
"cm4-soft; -mcpu=cortex-m4 -mthumb -mfloat-abi=soft"
|
"-mcpu=cortex-m3 -mthumb -mfloat-abi=soft"
|
||||||
"cm4-hard; -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard"
|
"-mcpu=cortex-m4 -mthumb -mfloat-abi=soft"
|
||||||
"cm7-soft; -mcpu=cortex-m7 -mthumb -mfloat-abi=soft"
|
"-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard"
|
||||||
"cm7-hard; -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard"
|
"-mcpu=cortex-m7 -mthumb -mfloat-abi=soft"
|
||||||
|
"-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard"
|
||||||
)
|
)
|
||||||
foreach(ENTRY ${ARM_MATRIX})
|
list(LENGTH VARIANTS VN)
|
||||||
string(REPLACE ";" "|" ENTRY "${ENTRY}")
|
math(EXPR VN "${VN} - 1")
|
||||||
string(REPLACE "|" ";" ITEM "${ENTRY}")
|
foreach(I RANGE ${VN})
|
||||||
list(GET ITEM 0 VARIANT)
|
list(GET VARIANTS ${I} V)
|
||||||
list(REMOVE_AT ITEM 0)
|
list(GET FLAG_LIST ${I} F)
|
||||||
string(REPLACE ";" " " FLAGS "${ITEM}")
|
set(TGT "check_${V}")
|
||||||
set(TARGET "check_${VARIANT}")
|
add_custom_target(${TGT}
|
||||||
add_custom_target(${TARGET}
|
COMMAND ${ARM_GCC} ${F}
|
||||||
COMMAND ${ARM_GCC} ${FLAGS}
|
|
||||||
-c ${CMAKE_CURRENT_SOURCE_DIR}/datarouter.c
|
-c ${CMAKE_CURRENT_SOURCE_DIR}/datarouter.c
|
||||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
-o ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.o
|
-o ${CMAKE_CURRENT_BINARY_DIR}/${TGT}.o
|
||||||
COMMENT "Compile check: ${VARIANT} (${FLAGS})"
|
COMMENT "Compile check: ${V} (${F})"
|
||||||
)
|
)
|
||||||
message(STATUS " compile check: ${VARIANT} (make ${TARGET})")
|
message(STATUS " compile check: ${V} (make ${TGT})")
|
||||||
endforeach()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
message(WARNING "arm-none-eabi-gcc not found; skipping ARM compile checks")
|
message(WARNING "arm-none-eabi-gcc not found; skipping ARM compile checks")
|
||||||
|
|||||||
Reference in New Issue
Block a user