Files
schemaCheck/.gitea/demo.yaml
2026-07-13 15:34:28 +08:00

84 lines
3.2 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"