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

如何编写.gitlab-ci.yml部署Sphinx静态页面到GitLab Pages?

解决GitLab Pages部署Sphinx静态页面的CI配置问题

嘿,我来帮你搞定这个GitLab Pages部署的问题!你的配置之所以失效,核心原因是GitLab Pages对部署文件的存放路径有硬性要求——必须放在项目根目录的public文件夹里,而你之前指定的docs/build/html不符合这个规则。

下面是修正后的.gitlab-ci.yml配置,分两种场景供你选择:

场景1:已经提前构建好Sphinx文档(本地构建完成)

如果你的docs/build/html目录已经有了完整的静态文件,只需要把它们复制到GitLab要求的public目录即可:

pages:
  stage: deploy
  script:
    # 创建public目录(如果不存在的话)
    - mkdir -p public
    # 将已构建的静态文件全部复制到public目录
    - cp -r docs/build/html/* public/
  artifacts:
    # GitLab Pages只会识别public目录下的文件
    paths:
      - public
  only:
    # 只在master分支触发部署
    - master

场景2:让CI自动构建并部署(更推荐)

如果希望每次推送代码到master分支时,CI自动完成Sphinx文档构建和部署,可以把构建命令也加进去:

pages:
  stage: deploy
  before_script:
    # 安装Sphinx及所需依赖(根据你的文档主题调整)
    - pip install sphinx sphinx-rtd-theme
  script:
    # 进入docs目录执行构建命令,生成静态文件到html目录
    - cd docs && make html
    # 创建public目录并复制构建结果
    - mkdir -p public
    - cp -r build/html/* public/
  artifacts:
    paths:
      - public
  only:
    - master

关键修改点说明:

  • 路径调整:把artifacts的路径从docs/build/html改成public,这是GitLab Pages唯一认可的部署目录
  • 文件复制:通过cp命令将已构建的静态文件转移到public目录,确保GitLab能正确识别并部署
  • 自动化构建(可选):添加依赖安装和Sphinx构建命令,实现从代码到部署的全流程自动化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:57:07