1. 工件配置

默认情况下,所有GitLab安装中均启用此功能。

(1) 禁用工件

  1. $ vim /etc/gitlab/gitlab.rb
  2. ...
  3. gitlab_rails['artifacts_enabled'] = false
  4. ...

(2)存储工件

默认情况下,工件存储在本地目录:/var/opt/gitlab/gitlab-rails/shared/artifacts ,也可修改存储目录。

  1. gitlab_rails['artifacts_path'] = "/mnt/storage/artifacts"

如果您不想使用安装了GitLab的本地磁盘来存储工件,则可以使用AWS S3之类的对象存储。参考:https://docs.gitlab.com/12.10/ee/administration/job_artifacts.html#using-object-storage

2. .gitlab.yml 配置工件

gitlab.yml 中,使用 artifacts 参数进行工件的配置。

//示例

  1. variables:
  2. MAVEN_OPTS: "-Dmaven.repo.local=.m2"
  3. stages:
  4. - test
  5. - build
  6. test:
  7. stage: test
  8. image: harbor.xiodi.cn/tools/openjdk:11.0.6
  9. tags:
  10. - docker
  11. - host20133-docker
  12. script:
  13. - chmod +x ./mvnw && ./mvnw test
  14. cache:
  15. key: maven-repo-cache
  16. paths:
  17. - .m2
  18. build:
  19. stage: build
  20. image: harbor.xiodi.cn/tools/openjdk:11.0.6
  21. tags:
  22. - docker
  23. - host20133-docker
  24. script:
  25. - chmod +x ./mvnw && ./mvnw package
  26. cache:
  27. key: maven-repo-cache
  28. paths:
  29. - .m2
  30. artifacts:
  31. paths:
  32. - target/*.jar
  33. expire_in: 1 week

//示例2,等同于示例1

  1. stages:
  2. - build
  3. build:
  4. stage: build
  5. image: harbor.xiodi.cn/tools/openjdk:11.0.6
  6. tags:
  7. - docker
  8. - host20133-docker
  9. script:
  10. - mkdir artifacts
  11. - cp target/*.jar artifacts/
  12. artifacts:
  13. paths:
  14. - artifacts/
  15. expire_in: 1 week

这种方式的好处是,存储更加简洁。

3. 工件的操作

3.1 浏览工件

当作业完成后,就会有以下的页面。
6.1 工件存储及配置 - 图1

  • 保持:当您设置了有效日期后,会有该选项,如果点击保持,则会取消有效日期
  • 浏览:用于 web查看工件详细信息。

6.1 工件存储及配置 - 图2

3.2 下载工件

下载的方式有两种:

  • GitLab UI 页面
  • GitLab URL

(1) GitLab UI 页面

可以下载的地方有很多,比如

//job页面
6.1 工件存储及配置 - 图3

//流水线页面
6.1 工件存储及配置 - 图4

(2)GitLab URL

//URL 结构,下载整个工件

  1. https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/download?job=<job_name>

//URL 结构,下个单个文件

  1. https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/raw/<path_to_file>?job=<job_name>

//例子

  1. https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring/-/jobs/artifacts/feature-1/download?job=build
  2. https://gitlabtest.xiodi.cn/edu-java-demo/edu-java-spring/-/jobs/33/artifacts/raw/artifacts/demo-0.0.1-SNAPSHOT.jar

3.3 删除工件

删除作业的同时,也将删除作业的工件和跟踪。

6.1 工件存储及配置 - 图5

[info]可以通过 du -sh 查看存储目录大小就可以看出删除了工件。