- 使用 cat > file <<EOF 替代其他方法 - 确保环境变量在 heredoc 中正确展开 - 本地测试验证成功
This commit is contained in:
+6
-12
@@ -418,23 +418,20 @@ steps:
|
|||||||
- |
|
- |
|
||||||
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
COMMIT="${CI_COMMIT_SHA:0:7}"
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ')
|
||||||
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
REPO_ID="${CI_REPO_ID:-1}"
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
PAYLOAD=$(cat <<ENDPAYLOAD
|
cat > /tmp/payload.json <<EOF
|
||||||
{
|
{
|
||||||
"msgtype": "markdown",
|
"msgtype": "markdown",
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ENDPAYLOAD
|
EOF
|
||||||
)
|
|
||||||
|
|
||||||
echo "$PAYLOAD" > /tmp/payload.json
|
|
||||||
|
|
||||||
curl -X POST "$WECHAT_WEBHOOK" \
|
curl -X POST "$WECHAT_WEBHOOK" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
@@ -457,23 +454,20 @@ steps:
|
|||||||
- |
|
- |
|
||||||
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
COMMIT="${CI_COMMIT_SHA:0:7}"
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ')
|
||||||
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
REPO_ID="${CI_REPO_ID:-1}"
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
PAYLOAD=$(cat <<ENDPAYLOAD
|
cat > /tmp/payload.json <<EOF
|
||||||
{
|
{
|
||||||
"msgtype": "markdown",
|
"msgtype": "markdown",
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"warning\">失败</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"warning\">失败</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ENDPAYLOAD
|
EOF
|
||||||
)
|
|
||||||
|
|
||||||
echo "$PAYLOAD" > /tmp/payload.json
|
|
||||||
|
|
||||||
curl -X POST "$WECHAT_WEBHOOK" \
|
curl -X POST "$WECHAT_WEBHOOK" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
|
|||||||
Executable
+44
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export CI_COMMIT_BRANCH="test-branch"
|
||||||
|
export CI_COMMIT_SHA="abc123def456"
|
||||||
|
export CI_COMMIT_MESSAGE="测试企业微信通知功能"
|
||||||
|
export CI_COMMIT_AUTHOR="张翔"
|
||||||
|
export CI_PIPELINE_NUMBER="999"
|
||||||
|
export CI_REPO_ID="1"
|
||||||
|
|
||||||
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ')
|
||||||
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
# 使用 cat 和 heredoc,但确保变量展开
|
||||||
|
cat > /tmp/payload.json <<EOF
|
||||||
|
{
|
||||||
|
"msgtype": "markdown",
|
||||||
|
"markdown": {
|
||||||
|
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "测试 cat heredoc 方法"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
echo "环境变量:"
|
||||||
|
echo " BRANCH: $BRANCH"
|
||||||
|
echo " COMMIT: $COMMIT"
|
||||||
|
echo " MESSAGE: $MESSAGE"
|
||||||
|
echo " AUTHOR: $AUTHOR"
|
||||||
|
echo " PIPELINE_NUMBER: $PIPELINE_NUMBER"
|
||||||
|
echo " REPO_ID: $REPO_ID"
|
||||||
|
echo " TIMESTAMP: $TIMESTAMP"
|
||||||
|
echo ""
|
||||||
|
echo "生成的 JSON:"
|
||||||
|
cat /tmp/payload.json | python3 -m json.tool
|
||||||
|
echo ""
|
||||||
|
echo "✅ 测试完成!变量已正确展开"
|
||||||
Executable
+38
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export CI_COMMIT_BRANCH="test-branch"
|
||||||
|
export CI_COMMIT_SHA="abc123def456"
|
||||||
|
export CI_COMMIT_MESSAGE="测试企业微信通知功能"
|
||||||
|
export CI_COMMIT_AUTHOR="张翔"
|
||||||
|
export CI_PIPELINE_NUMBER="999"
|
||||||
|
export CI_REPO_ID="1"
|
||||||
|
|
||||||
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ')
|
||||||
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
|
|
||||||
|
echo "{\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"$CONTENT\"}}" > /tmp/payload.json
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "测试 echo 方法"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
echo "环境变量:"
|
||||||
|
echo " BRANCH: $BRANCH"
|
||||||
|
echo " COMMIT: $COMMIT"
|
||||||
|
echo " MESSAGE: $MESSAGE"
|
||||||
|
echo " AUTHOR: $AUTHOR"
|
||||||
|
echo " PIPELINE_NUMBER: $PIPELINE_NUMBER"
|
||||||
|
echo " REPO_ID: $REPO_ID"
|
||||||
|
echo " TIMESTAMP: $TIMESTAMP"
|
||||||
|
echo ""
|
||||||
|
echo "生成的 JSON:"
|
||||||
|
cat /tmp/payload.json | python3 -m json.tool
|
||||||
|
echo ""
|
||||||
|
echo "✅ 测试完成!变量已正确展开"
|
||||||
Executable
+38
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export CI_COMMIT_BRANCH="test-branch"
|
||||||
|
export CI_COMMIT_SHA="abc123def456"
|
||||||
|
export CI_COMMIT_MESSAGE="测试企业微信通知功能"
|
||||||
|
export CI_COMMIT_AUTHOR="张翔"
|
||||||
|
export CI_PIPELINE_NUMBER="999"
|
||||||
|
export CI_REPO_ID="1"
|
||||||
|
|
||||||
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
||||||
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
|
|
||||||
|
printf '{"msgtype":"markdown","markdown":{"content":"%s"}}' "$CONTENT" > /tmp/payload.json
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "测试 printf 方法"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
echo "环境变量:"
|
||||||
|
echo " BRANCH: $BRANCH"
|
||||||
|
echo " COMMIT: $COMMIT"
|
||||||
|
echo " MESSAGE: $MESSAGE"
|
||||||
|
echo " AUTHOR: $AUTHOR"
|
||||||
|
echo " PIPELINE_NUMBER: $PIPELINE_NUMBER"
|
||||||
|
echo " REPO_ID: $REPO_ID"
|
||||||
|
echo " TIMESTAMP: $TIMESTAMP"
|
||||||
|
echo ""
|
||||||
|
echo "生成的 JSON:"
|
||||||
|
cat /tmp/payload.json | python3 -m json.tool
|
||||||
|
echo ""
|
||||||
|
echo "✅ 测试完成!变量已正确展开"
|
||||||
Reference in New Issue
Block a user