作业工件管理

注:

  • 在GitLab 8.2和GitLab Runner 0.7.0中引入。
  • 从GitLab 8.4和GitLab Runner 1.0开始,工件存档格式更改为邮政编码
  • 从GitLab 8.17开始,构建被重命名为作业。
  • 这是管理文档。用户指南请参见管道/ job_artifacts

工件是在作业成功完成后附加到作业的文件和目录列表。在所有GitLab安装中默认启用此功能。如果你想知道如何禁用它,请继续阅读。

禁用作业工件

要在站点范围内禁用工件,请按照以下步骤操作。


在Omnibus装置中:

  1. 编辑/etc/gitlab/gitlab.rb并添加以下行:

    gitlab_rails“artifacts_enabled”
  2. 保存文件并从源代码安装:

    1. 编辑/home/git/gitlab/config/gitlab.yml并增加或修改以下几行:

      工件启用
    2. 保存文件并存储作业工件

      作业成功后,GitLab Runner将包含作业工件的归档文件上传到GitLab。

      使用本地存储

      要更改工件在本地存储的位置,请遵循以下步骤。


      在Omnibus装置中:

      默认情况下,构件存储在/var/opt/gitlab/gitlab-rails /共享/工件

      1. 修改存储路径,例如为/ mnt /存储/工件、编辑/etc/gitlab/gitlab.rb并添加以下行:

        gitlab_rails“artifacts_path”“/ mnt /存储/构件”
      2. 保存文件并从源代码安装:

        默认情况下,构件存储在/home/git/gitlab/shared/artifacts

        1. 修改存储路径,例如为/ mnt /存储/工件、编辑/home/git/gitlab/config/gitlab.yml并增加或修改以下几行:

          工件启用真正的路径/ mnt /存储/工件
        2. 保存文件并使用对象存储

          注:

          • [GitLab Premium][eep] 9.4引入[ee-1762]
          • 从9.5版本开始,当对象存储被启用时,工件是[可浏览的]。9.4缺少此功能。可以在GitLab溢价GitLab.com银.从10.6版开始,在GitLab CE

          如果您不想使用安装了GitLab的本地磁盘来存储工件,那么您可以使用像AWS S3这样的对象存储。此配置依赖于已配置的有效AWS凭据。使用一个对象存储选项如AWS S3来存储作业工件。

          对象存储设置

          对于源安装,以下设置嵌套在构件:然后object_store:.在公共设施上,它们的前缀是artifacts_object_store_

          设置 描述 默认的
          启用 启用/禁用对象存储
          remote_directory 存储Artifacts的桶名
          direct_upload 设置为true可以在不需要本地共享存储的情况下直接上传工件。一旦我们决定只支持所有文件的单一存储,该选项可能会被删除。目前只谷歌支持提供程序
          background_upload 设置为false表示禁用自动上传。一旦直接上载到S3,该选项可能会被删除 真正的
          proxy_download 设置为true将启用代理所有文件。选项允许减少出口流量,因为这允许客户端直接从远程存储下载,而不是代理所有数据
          连接 下面描述的各种连接选项

          S3兼容连接设置

          提供的连接设置相匹配,分别为:

          设置 描述 默认的
          提供者 总是AWS兼容主机 AWS
          aws_access_key_id AWS凭证,或兼容
          aws_secret_access_key AWS凭证,或兼容
          地区 AWS地区 us-east-1
          宿主 S3兼容主机,当不使用AWS时,例如。本地主机storage.example.com s3.amazonaws.com
          端点 可以在配置S3兼容服务时使用,例如Minio,输入URL,例如http://127.0.0.1:9000 (可选)
          path_style 设置为true才能使用主机/ bucket_name /对象样式路径而不是bucket_name.host /对象.对于AWS S3设置为false

          在Omnibus装置中:

          默认情况下,构件存储在/var/opt/gitlab/gitlab-rails /共享/工件

          1. 编辑/etc/gitlab/gitlab.rb然后用你想要的值替换下面的行:

            gitlab_rails“artifacts_enabled”真正的gitlab_rails“artifacts_object_store_enabled”真正的gitlab_rails“artifacts_object_store_remote_directory”“构件”gitlab_rails“artifacts_object_store_connection”{“供应商”=>AWS的“地区”=>“eu-central-1”“aws_access_key_id”=>“AWS_ACCESS_KEY_ID”“aws_secret_access_key”=>“AWS_SECRET_ACCESS_KEY”}

            注意:对于GitLab 9.4+,如果您正在使用AWS IAM配置文件,请确保省略AWS访问密钥和秘密访问密钥/值对。例如:

            gitlab_rails“artifacts_object_store_connection”{“供应商”=>AWS的“地区”=>“eu-central-1”“use_iam_profile”=>真正的}
          2. 保存文件并gitlab-rake gitlab:工件:迁移

            目前,这必须手动执行,并且允许您将现有工件迁移到对象存储中,但是所有新工件仍将存储在本地磁盘上。将来,您将获得为所有新文件定义默认存储构件的选项。


          从源代码安装:

          默认情况下,构件存储在/home/git/gitlab/shared/artifacts

          1. 编辑/home/git/gitlab/config/gitlab.yml并增加或修改以下几行:

            工件启用真正的object_store启用真正的remote_directory构件”#桶名连接提供者AWS#目前只支持AWSaws_access_key_idAWS_ACESS_KEY_IDaws_secret_access_keyAWS_SECRET_ACCESS_KEY地区eu-central-1
          2. 保存文件并sudo- ugit- h执行rake gitlab:工件:迁移RAILS_ENV生产

            目前,这必须手动执行,并且允许您将现有工件迁移到对象存储中,但是所有新工件仍将存储在本地磁盘上。将来,您将获得为所有新文件定义默认存储构件的选项。

          到期的工件

          如果工件使用了过期日期,那么在该日期过后,它们将被标记为删除。工件由expire_build_artifacts_worker由Sidekiq每小时50分钟运行的cron作业(50 * * * *)。

          要更改工件过期的默认计划,请遵循以下步骤。


          在Omnibus装置中:

          1. 编辑/etc/gitlab/gitlab.rb并注释掉或添加以下行

            gitlab_rails“expire_build_artifacts_worker_cron”“50 * * * *”
          2. 保存文件并从源代码安装:

            1. 编辑/home/git/gitlab/config/gitlab.yml并增加或修改以下几行:

              expire_build_artifacts_workercron50****”
            2. 保存文件并依赖性的验证

              在GitLab 10.3中引入。

              禁用依赖性验证,您可以从Rails控制台中翻转特性标志。


              在Omnibus装置中:

              1. 进入Rails控制台:

                sudogitlab-rails控制台
              2. 拨动开关并禁用它:

                功能启用“ci_disable_validates_dependencies”

              从源代码安装:

              1. 进入Rails控制台:

                cd/home/git/gitlabRAILS_ENV生产sudo- ugit- h执行rails控制台
              2. 拨动开关并禁用它:

                功能启用“ci_disable_validates_dependencies”

              设置工件的最大文件大小

              如果工件被启用,您可以通过管理区设置

              存储数据

              您可以在管理区域中查看组和项目上的作业工件使用的总存储空间,也可以通过项目的api

              实现细节

              当GitLab接收到工件归档时,归档元数据文件也由GitLab主力.此元数据文件描述位于工件存档本身中的所有条目。元数据文件是二进制格式,带有额外的GZIP压缩。

              为了节省空间、内存和磁盘I/O, GitLab不提取工件存档。相反,它检查包含所有相关信息的元数据文件。当有很多工件,或者存档是一个非常大的文件时,这一点尤其重要。

              当点击一个特定文件时,GitLab主力从存档中提取它,然后开始下载。这个实现节省了空间、内存和磁盘I/O。

Baidu
map