<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1560 720" role="img" aria-label="部署流水线图：git push 触发 GitHub Actions，同时部署腾讯云与 Cloudflare Pages 双线">
  <defs>
    <marker id="arw2" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
      <path d="M0,0 L10,5 L0,10 Z" fill="#9DA893"/>
    </marker>
  </defs>

  <rect width="1560" height="720" fill="#FBFAF5"/>

  <text x="40" y="64" font-family="-apple-system,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif" font-size="34" font-weight="700" fill="#2F382F">部署流水线：一次 git push，两条线路同时上线</text>
  <text x="40" y="102" font-family="-apple-system,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif" font-size="20" fill="#77816F">腾讯云线路保持不动，新增 Cloudflare Pages 线路，双线并行一段时间再做切换</text>

  <!-- 阶段1：本地 -->
  <g>
    <rect x="40" y="150" width="270" height="150" rx="18" fill="#FFFFFF" stroke="#E2DFD0" stroke-width="2"/>
    <g transform="translate(175,178)">
      <path d="M-14,14 L10,-10 L20,0 L-4,24 L-18,28 Z" fill="#EEF3EB" stroke="#5F7F66" stroke-width="4" stroke-linejoin="round"/>
      <line x1="12" y1="-12" x2="20" y2="-4" stroke="#5F7F66" stroke-width="4"/>
    </g>
    <text x="175" y="248" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="25" font-weight="600" fill="#2F382F">本地写作 / 改代码</text>
    <text x="175" y="278" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="17" fill="#77816F">posts/*.md · React + Vite</text>
  </g>

  <line x1="318" y1="225" x2="388" y2="225" stroke="#9DA893" stroke-width="3" marker-end="url(#arw2)"/>
  <text x="353" y="196" text-anchor="middle" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="15" font-weight="600" fill="#5F7F66">git push tag</text>

  <!-- 阶段2：Actions 构建 -->
  <g>
    <rect x="400" y="150" width="330" height="150" rx="18" fill="#FFFFFF" stroke="#E2DFD0" stroke-width="2"/>
    <g transform="translate(565,185)">
      <circle r="17" fill="none" stroke="#5F7F66" stroke-width="5"/>
      <circle r="6" fill="#5F7F66"/>
      <g stroke="#5F7F66" stroke-width="5" stroke-linecap="round">
        <line x1="0" y1="-30" x2="0" y2="-23"/><line x1="0" y1="30" x2="0" y2="23"/>
        <line x1="-30" y1="0" x2="-23" y2="0"/><line x1="30" y1="0" x2="23" y2="0"/>
        <line x1="-21" y1="-21" x2="-16" y2="-16"/><line x1="21" y1="21" x2="16" y2="16"/>
        <line x1="-21" y1="21" x2="-16" y2="16"/><line x1="21" y1="-21" x2="16" y2="-16"/>
      </g>
    </g>
    <text x="565" y="252" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="25" font-weight="600" fill="#2F382F">GitHub Actions 构建</text>
    <text x="565" y="280" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="16" fill="#77816F">ubuntu-latest 自带 Chrome · pnpm build</text>
  </g>

  <!-- 分叉箭头 -->
  <path d="M738,205 H782 V195 H822" fill="none" stroke="#9DA893" stroke-width="3" marker-end="url(#arw2)"/>
  <path d="M738,245 H782 V385 H822" fill="none" stroke="#9DA893" stroke-width="3" marker-end="url(#arw2)"/>

  <!-- 线路一：腾讯云 -->
  <g>
    <rect x="830" y="120" width="330" height="150" rx="18" fill="#FFFFFF" stroke="#E2DFD0" stroke-width="2"/>
    <rect x="854" y="140" width="120" height="28" rx="14" fill="#EFF3EB"/>
    <text x="914" y="159" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="15" font-weight="600" fill="#5F7F66">线路一 · 现状</text>
    <text x="995" y="212" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="23" font-weight="600" fill="#2F382F">SSH 部署到腾讯云</text>
    <text x="995" y="238" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="16" fill="#77816F">appleboy/ssh-action 远程构建</text>
    <text x="995" y="260" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="16" fill="#77816F">国内直连快 · 服务器按月付费</text>
  </g>

  <!-- 线路二：Cloudflare Pages -->
  <g>
    <rect x="830" y="310" width="330" height="150" rx="18" fill="#FFF8EE" stroke="#F6821F" stroke-width="2.5"/>
    <rect x="854" y="330" width="120" height="28" rx="14" fill="#FDEFDD"/>
    <text x="914" y="349" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="15" font-weight="600" fill="#B05E12">线路二 · 新增</text>
    <text x="995" y="402" text-anchor="middle" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="19" font-weight="600" fill="#2F382F">wrangler pages deploy</text>
    <text x="995" y="428" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="16" fill="#8A6A45">dist/ 上传 Cloudflare Pages</text>
    <text x="995" y="450" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="16" fill="#8A6A45">全球 CDN · 免备案 · ¥0</text>
  </g>

  <!-- 汇合箭头 -->
  <path d="M1168,195 H1210 V285 H1232" fill="none" stroke="#9DA893" stroke-width="3" marker-end="url(#arw2)"/>
  <path d="M1168,385 H1210 V355 H1232" fill="none" stroke="#9DA893" stroke-width="3" marker-end="url(#arw2)"/>

  <!-- 终点：对外服务 -->
  <g>
    <rect x="1240" y="210" width="280" height="220" rx="18" fill="#FFFFFF" stroke="#E2DFD0" stroke-width="2"/>
    <g transform="translate(1380,268)">
      <circle r="30" fill="#EEF3EB" stroke="#5F7F66" stroke-width="4"/>
      <ellipse rx="30" ry="12" fill="none" stroke="#5F7F66" stroke-width="3"/>
      <ellipse rx="12" ry="30" fill="none" stroke="#5F7F66" stroke-width="3"/>
    </g>
    <text x="1380" y="336" text-anchor="middle" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="21" font-weight="600" fill="#46604C">www.lglg.xyz</text>
    <text x="1380" y="366" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="17" fill="#77816F">双线并行对外服务</text>
    <text x="1380" y="392" text-anchor="middle" font-family="-apple-system,'PingFang SC',sans-serif" font-size="17" fill="#77816F">跑两周对比速度，再决定切 NS</text>
    <rect x="1318" y="404" width="124" height="0" fill="none"/>
  </g>

  <!-- 底部备注 -->
  <g transform="translate(40,600)">
    <rect width="700" height="56" rx="14" fill="#F4F1E6"/>
    <circle cx="34" cy="28" r="13" fill="none" stroke="#8A7B4F" stroke-width="4"/>
    <circle cx="29" cy="28" r="4" fill="#8A7B4F"/>
    <rect x="41" y="25" width="12" height="6" rx="3" fill="#8A7B4F"/>
    <text x="62" y="35" font-family="-apple-system,'PingFang SC',sans-serif" font-size="18" fill="#6E6440">方式二需在仓库 Secrets 配置 CLOUDFLARE_API_TOKEN 和 CLOUDFLARE_ACCOUNT_ID</text>
  </g>
</svg>
