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

如何配置GitLab CI/CD的.yml文件将HTML报告部署至Nginx服务器

问题描述

我在GitLab某Job的artifacts文件夹下生成了HTML报告,希望将其部署到Nginx托管的Web服务器(http://some_domain_name:8080)上。当前我的.gitlab-ci.yml文件配置如下:

job:
    artifacts:
      name: "artifact_name"
      paths:
        - artifacts
      expire_in: 7 days

我可通过以下API下载artifacts并提取HTML报告:

curl --location --output artifacts.zip --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/jobs/42/artifacts"

请问是否可通过配置.yml文件,将artifacts文件夹中的HTML文件直接部署到该Nginx服务器?

解决方案

完全可以直接通过.gitlab-ci.yml配置实现部署,无需手动调用API下载。核心思路是新增一个部署阶段的Job,依赖生成artifacts的Job,再通过文件传输工具将HTML文件推送至Nginx服务器的网站根目录。

具体配置步骤

  • 配置服务器SSH密钥到GitLab变量
    将目标Nginx服务器的SSH私钥(用于免密登录)添加到项目的Settings > CI/CD > Variables中,变量名建议设为SSH_PRIVATE_KEY,同时开启Protected和Masked选项保障安全。

  • 修改.gitlab-ci.yml添加部署Job
    在原有配置基础上补充部署逻辑,示例如下:

    stages:
      - build
      - deploy
    
    build_job:
      stage: build
      artifacts:
        name: "artifact_name"
        paths:
          - artifacts
        expire_in: 7 days
      # 此处保留你原有生成HTML报告的构建命令
    
    deploy_to_nginx:
      stage: deploy
      dependencies:
        - build_job  # 关联构建Job,自动拉取其生成的artifacts
      before_script:
        # 配置SSH免密登录环境
        - mkdir -p ~/.ssh
        - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
        - chmod 600 ~/.ssh/id_rsa
        - ssh-keyscan <你的Nginx服务器IP> >> ~/.ssh/known_hosts
      script:
        # 用scp将artifacts内的文件同步到Nginx网站根目录(示例路径为/usr/share/nginx/html)
        - scp -r artifacts/* <服务器登录用户名>@<你的Nginx服务器IP>:/usr/share/nginx/html/
        # 若追求增量更新效率,可替换为rsync:
        # - rsync -avz artifacts/* <服务器登录用户名>@<你的Nginx服务器IP>:/usr/share/nginx/html/
      only:
        - main  # 仅在main分支触发部署,可根据需求调整分支规则
    

注意事项

  • 确保Nginx服务器防火墙允许GitLab Runner的IP访问SSH端口(默认22)。
  • 确认Nginx网站根目录的权限,保证部署用户拥有写入权限。
  • 若使用rsync,需确保目标服务器已安装该工具,否则使用scp即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:13:29