我遇到了一个问题:尽管工作流程执行成功,但在 Flutter 项目中更改 .dart 文件后,我的 GitHub Pages 网站并未更新。该工作流程旨在构建 Flutter Web 应用程序并将其推送到 gh-pages 分支。主分支中的更改反映正确,但是当将生成的文件(如index.html)推送到gh-pages时,我收到一条“无需提交,工作树干净”的消息,这与我更新站点的期望相矛盾。
这是我的工作流程配置:
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
env:
my_secret: ${{secrets.SECRET_TOKEN}}
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- run: flutter clean
- run: flutter pub get
- run: flutter build web --release
- run: |
cd build
mkdir web-deploy
cd web-deploy
git config --global user.email [email protected]
git config --global user.name user
git config --global init.defaultBranch main
git init
git remote add origin https://${{secrets.SECRET_TOKEN}}@github.com/user/user.github.io.git
git fetch origin gh-pages
git switch gh-pages
cp -R ../web/* .
git status
git add .
echo "Committing to gh-pages: ${{ github.event.head_commit.message }}"
git commit -m "${{ github.event.head_commit.message }}"
git push origin gh-pages
如果我指定“允许空提交”标志,工作流程执行时不会出现错误,并且我可以在 gh-pages 分支中看到提交,但更改在我的 GitHub Pages 站点上不可见。
我考虑过的一些事情:
.dart 文件在主分支中已正确修改。 如果我指定“允许空提交”标志,构建和部署步骤就会完成,不会出现错误。 我正在以隐身模式访问我的应用程序或删除浏览器上的缓存,但没有任何变化。
问题:
工作流程完成且没有错误,并且 gh-pages 分支显示提交,但 GitHub Pages 站点未反映更改。
注意事项:
.dart 更改在主分支中得到确认。 构建和部署步骤成功。 浏览器缓存已被清除,以确保这不是缓存问题。 问题:
我的工作流程是否配置错误,导致 GitHub Pages 无法更新? GitHub Pages 缓存是否是问题所在?如何强制刷新? 我是否错过了 GitHub Pages 内容更新的关键步骤? 非常感谢任何见解或建议!
此工作流程似乎已正确配置为构建 Flutter Web 应用程序并将其部署到 GitHub Pages。但是,有一些注意事项和潜在问题需要解决:
分支和工作流程触发器: 确保您的工作流程在正确的分支(在您的情况下为 main)上触发,并且您将更改推送到 GitHub Pages 配置为为您的网站提供服务的同一分支(在您的情况下为 gh-pages)。
GitHub 页面配置: 验证您的存储库中的 GitHub Pages 设置是否已正确配置为提供来自 gh-pages 分支的内容。
缓存: GitHub Pages 可能会缓存文件,因此即使部署成功,更改也可能不会立即可见。尝试清除浏览器缓存或以隐身模式访问网站,以排除缓存问题。
部署路径: 仔细检查 Flutter 项目 Web 目录中的部署路径。该目录的内容应该复制到 gh-pages 分支的根目录。确保此目录中存在必要的文件(包括 index.html),并且在构建过程中正确生成。
Git 配置: 确保在工作流程脚本中正确设置用户电子邮件和名称的 Git 配置。您还可以尝试删除全局 Git 配置并在工作流程脚本中进行本地设置。
提交并推送: 将文件复制到 gh-pages 分支后,确保正确提交并推送更改。您可以将调试日志添加到工作流程脚本中,以验证 git status、git add、git commit 和 git push 命令的状态。
权限和秘密: 验证工作流脚本中使用的 GitHub 令牌 (${{secrets.SECRET_TOKEN}}) 是否具有将更改推送到存储库的 gh-pages 分支所需的权限。
工作流程执行日志: 查看工作流程的执行日志,以检查是否存在任何可能表明构建和部署过程中出现问题的警告或错误。
通过解决这些注意事项和潜在问题,您应该能够排查并解决 GitHub Pages 网站未反映 Flutter Web 应用程序更改的问题。