This commit is contained in:
@@ -1,83 +0,0 @@
|
|||||||
name: CodeChecker 变更检测
|
|
||||||
run-name: ${{ gitea.actor }}的CodeChecker变更检测
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches:
|
|
||||||
# - check-code-dev-test
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
env:
|
|
||||||
# CodeChecker 私库坐标:com.codechecker:code-checker:1.0.0
|
|
||||||
CODE_CHECKER_VERSION: "1.0.0"
|
|
||||||
CODE_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
code-check:
|
|
||||||
if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }}
|
|
||||||
runs-on: jdk11
|
|
||||||
steps:
|
|
||||||
# 浅克隆:CodeChecker 仅需 HEAD 与 HEAD~1,避免全量拉取
|
|
||||||
# 指定 --branch 确保非默认分支推送时也能正确检出 gitea.sha
|
|
||||||
- name: 检出代码
|
|
||||||
run: |
|
|
||||||
git config --global http.sslVerify false
|
|
||||||
git clone --depth 2 --single-branch --branch "${{ gitea.ref_name }}" \
|
|
||||||
"https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" .
|
|
||||||
# 将 commit 绑定回本地分支,避免 detached HEAD 导致分支识别为「未知」
|
|
||||||
git checkout -B "${{ gitea.ref_name }}" "${{ gitea.sha }}"
|
|
||||||
# git config --global http.sslVerify false
|
|
||||||
# git clone --depth 2 --single-branch --branch "${{ gitea.ref_name }}" \
|
|
||||||
# "https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" .
|
|
||||||
# git checkout ${{ gitea.sha }}
|
|
||||||
|
|
||||||
- name: 检查配置文件
|
|
||||||
run: |
|
|
||||||
if [ ! -f .gitea/config/code-check-config.yaml ]; then
|
|
||||||
echo "错误: 缺少 .gitea/config/code-check-config.yaml"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: 从 Nexus 私库下载 CodeChecker
|
|
||||||
run: |
|
|
||||||
GROUP_PATH="com/codechecker/code-checker"
|
|
||||||
JAR_NAME="code-checker-${CODE_CHECKER_VERSION}.jar"
|
|
||||||
JAR_URL="${CODE_CHECKER_REPO_URL}/${GROUP_PATH}/${CODE_CHECKER_VERSION}/${JAR_NAME}"
|
|
||||||
JAR_PATH="/tmp/${JAR_NAME}"
|
|
||||||
|
|
||||||
echo "下载: ${JAR_URL}"
|
|
||||||
if command -v curl >/dev/null 2>&1; then
|
|
||||||
curl -fsSL -o "${JAR_PATH}" "${JAR_URL}"
|
|
||||||
elif command -v wget >/dev/null 2>&1; then
|
|
||||||
wget -q -O "${JAR_PATH}" "${JAR_URL}"
|
|
||||||
else
|
|
||||||
echo "错误: Runner 缺少 curl 或 wget,无法从 Nexus 下载 jar"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -s "${JAR_PATH}" ]; then
|
|
||||||
echo "错误: 下载失败或文件为空: ${JAR_PATH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
ls -lh "${JAR_PATH}"
|
|
||||||
|
|
||||||
- name: 验证 JDK
|
|
||||||
run: |
|
|
||||||
echo "Java: $(java -version 2>&1 | head -1)"
|
|
||||||
|
|
||||||
- name: 执行 CodeChecker 变更检测
|
|
||||||
run: |
|
|
||||||
OLD_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
|
|
||||||
if [ -z "$OLD_SHA" ]; then
|
|
||||||
echo "首次提交,跳过变更检测"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S')
|
|
||||||
java -jar "/tmp/code-checker-${CODE_CHECKER_VERSION}.jar" \
|
|
||||||
--config .gitea/config/code-check-config.yaml \
|
|
||||||
--repo-root . \
|
|
||||||
--old-sha "$OLD_SHA" \
|
|
||||||
--new-sha "$(git rev-parse HEAD)" \
|
|
||||||
--modifier "${{ gitea.actor }}" \
|
|
||||||
--modify-time "$COMMIT_TIME"
|
|
||||||
Reference in New Issue
Block a user