You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions构建成功但网站未同步代码变更(部署问题)

问题描述

我在GitHub上托管的项目使用GitHub Actions构建流水线,流水线执行成功,但index.html的变更未同步到线上网站,具体情况如下:

  • 构建流水线:可正常拉取仓库代码、执行构建及所有定义步骤
  • 代码变更:已确认对index.html的修改已提交并推送到GitHub仓库
  • 网站未更新:访问线上网站时index.html仍显示旧版本,已尝试清除浏览器缓存、重新部署,问题依旧

环境信息

  • 部署配置:使用Azure CDN及自定义域名部署网站
  • 构建流水线:Workflow YAML文件中使用actions/checkout@v4、azure/login@v2,参考微软官方文档配置
  • 已将Azure凭据添加为GitHub仓库密钥,但不确定azure/login@v2是否正确调用;且部署静态站点到GitHub Pages时,该登录动作似乎多余

我的frontend.yml内容

name: deploy_frontend
# 当frontend文件夹有推送时触发部署
on:
  push:
    branches: [ main ]
    paths:
      - 'frontend/**'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: azure/login@v2
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

      - name: Upload to blob storage
        uses: azure/CLI@v1
        with:
          inlineScript: |
              az storage blob upload-batch --account-name azureresumefaizan --auth-mode key -d '$web' -s frontend/
      - name: Purge CDN endpoint
        uses: azure/CLI@v1
        with:
          inlineScript: |
             az cdn endpoint purge --content-paths  "/*" --profile-name "azureresumefaizanshaikh" --name "azureresumefaizanshaikh" --resource-group "faizresume-rg"

      # Azure登出
      - name: logout
        run: |
              az logout
        if: always()
排查与解决方案

1. 检查文件上传步骤是否真正生效

登录Azure门户,进入存储账户azureresumefaizan的$web容器,查看index.html的最后修改时间是否与流水线执行时间匹配:

  • 如果文件未更新,确认-s frontend/路径是否正确:若index.html在frontend的子目录(如dist),需将路径调整为对应子目录(例如frontend/dist/)
  • 移除--auth-mode key参数:已通过azure/login完成身份验证,使用该参数会强制用密钥认证,可能因密钥权限或获取问题导致上传失败

2. 验证CDN缓存清除操作

  • 查看GitHub Actions中Purge CDN endpoint步骤的日志,确认清除操作是否成功。若有错误,检查--profile-name、--name、--resource-group的名称是否与Azure中的配置完全一致(注意大小写)
  • 手动在Azure门户执行CDN缓存清除,再访问网站测试。若手动操作后生效,说明流水线中的清除命令参数有误

3. 确认azure/login的有效性

  • 查看流水线中azure/login步骤的日志,确认是否显示登录成功。若登录失败,后续az命令会使用无权限的默认凭据,导致操作失败
  • 检查GitHub仓库的AZURE_CREDENTIALS密钥:确保是从Azure AD应用注册导出的完整JSON格式凭据,包含clientId、clientSecret、tenantId等必要信息

4. 其他排查点

  • 检查Azure CDN的缓存策略:确认是否对index.html设置了过长的缓存时间,或未根据文件修改时间更新缓存
  • 确认存储账户静态网站的默认文档:确保$web容器的默认文档设置为index.html,避免加载旧的默认文件

内容的提问来源于stack exchange,提问作者Faizan Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:15:36