gitea-action-test/.github/workflows/翻译更新日志 copy.yml
LIRUI e955ca8522
All checks were successful
翻译更新日志 / generate_changelog (push) Successful in 30s
1028.yml
2024-10-28 23:11:56 +08:00

70 lines
3.0 KiB
YAML
Raw 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: 翻译更新日志
on:
push:
branches:
- main
jobs:
generate_changelog:
runs-on: ubuntu-latest
steps:
- name: 设置时区
run: echo "TZ='Asia/Shanghai'" | sudo tee -a /etc/environment && source /etc/environment
# 1. 使用 GitHub API 获取提交信息
- name: 获取最新提交信息
id: fetch_commits
run: |
COMMIT_URL="https://api.github.com/repos/coolsnowwolf/lede/commits"
# 通过 API 获取最近的提交
COMMIT_DATA=$(curl -s $COMMIT_URL)
# 提取最新提交的日期
LATEST_DATE=$(echo "$COMMIT_DATA" | jq -r '.[0].commit.committer.date' | cut -d'T' -f1)
# 过滤与最新日期相同的所有提交消息并排除包含“Signed-off-by”的行
MESSAGES=$(echo "$COMMIT_DATA" | jq -r ".[] | select(.commit.committer.date | contains(\"$LATEST_DATE\")) | .commit.message" | grep -v "Signed-off-by")
# 将所有提交消息合并为字符串
FORMATTED_MESSAGES=$(echo "$MESSAGES" | sed ':a;N;$!ba;s/\n/\\n/g')
echo "::set-output name=messages::$FORMATTED_MESSAGES"
# 2. 调用翻译 API
- name: 翻译更新日志
id: translate
env:
TRANSLATION_URL: "https://ollama.aoun.ltd/api/generate"
PROMPT: |
你是一位熟悉技术文档、硬件描述和设备树配置的专业翻译员,请准确且简洁地将以下内容从英文翻译成简体中文。
要求:
1. 务必使用 Markdown 格式,但不要使用 ```markdown 标记。
2. 遵循技术术语的准确性,不意译,不简化。
3. 保持原文的标题和分段结构,使用 `###` 作为主标题,`-` 作为每项更新的列表符号。
4. 保证每一项内容之间留有一行空行,适当使用换行符 `\n` 使段落清晰分隔。
5. 忽略任何包含 “Signed-off-by” 的内容。
6. 不要添加任何额外的描述或解释,直接翻译每条内容即可。
以下是需要翻译的内容:
${{ steps.fetch_commits.outputs.messages }}
run: |
# 使用 jq 构建 JSON 数据
JSON_PAYLOAD=$(jq -n \
--arg model "llama3.2" \
--arg prompt "$PROMPT" \
--argjson stream false \
'{model: $model, prompt: $prompt, stream: $stream}')
# 输出请求的 JSON 数据,便于调试(可选)
echo "请求的 JSON 数据:$JSON_PAYLOAD"
# 调用翻译 API
RESPONSE=$(curl -s -X POST "$TRANSLATION_URL" \
-H "Content-Type: application/json" \
-d "$JSON_PAYLOAD")
# 输出响应内容,便于调试(可选)
echo "API 响应:$RESPONSE"
# 获取翻译的文本内容
TRANSLATED_TEXT=$(echo "$RESPONSE" | jq -r '.response // "翻译失败"')
echo "::set-output name=translated_text::$TRANSLATED_TEXT"