在给测试搭建自动化测试环境工程中需要将测试报告收集起来,以便测试分析,但通过如下配置

stages:
  - runTest
  - alterdingding

.profile: &profile
  variables:
    PROFILE: "$CI_COMMIT_REF_NAME"
    BRANCH_TAG: "$CI_COMMIT_TAG"
执行run:
  stage: runTest
  image: nexus.xxx.com:8080/tools/rftest:v0.1
  only:
    - web
    - master
  # 排除有tag的情况
  except:
    - tags
  tags:
    - docker
  before_script:
    - 'SHELL_RESULT="YES"'
  <<: *profile
  script:
    - mkdir /ccccccc/robotframework/tests -p
    - mkdir $CI_PROJECT_DIR/reports -p
    - mv ./* /ccccccc/robotframework/tests
    - robot  --outputDir $CI_PROJECT_DIR/reports /ccccccc/robotframework/tests 2>/dev/null || SHELL_RESULT="NO"
  artifacts:
    name:  "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
    paths:
      - reports/*
    expire_in: 4 hrs

通知测试dingding:
  stage: alterdingding
  only:
    - web
    - master
  # 排除有tag的情况
  except:
    - tags
  tags:
    - docker
  <<: *profile
  script:
    - sh dingdingAlter.sh $SHELL_RESULT $CI_BUILD_REF

发现配置一直缓存不了,所以也没法下载收集的日志,而且官方文档并没有提及相应的约束 在这里插入图片描述

最后发现是很多人给官方提了bug,官方强调必须是编译目录路径系统才会缓存。最后修改成如下这样

stages:
  - runTest
  - alterdingding

.profile: &profile
  variables:
    PROFILE: "$CI_COMMIT_REF_NAME"
    BRANCH_TAG: "$CI_COMMIT_TAG"
执行run:
  stage: runTest
  image: nexus.ccccccc.com:8080/tools/rftest:v0.1
  only:
    - web
    - master
  # 排除有tag的情况
  except:
    - tags
  tags:
    - docker
  before_script:
    - 'SHELL_RESULT="YES"'
  <<: *profile
  script:
    - mkdir /ccccccc/robotframework/tests -p
    - mkdir $CI_PROJECT_DIR/reports -p
    - mv ./* /ccccccc/robotframework/tests
    - robot  --outputDir $CI_PROJECT_DIR/reports /ccccccc/robotframework/tests 2>/dev/null || SHELL_RESULT="NO"
  artifacts:
    name:  "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
    paths:
      - reports/*
    expire_in: 4 hrs

通知测试dingding:
  stage: alterdingding
  only:
    - web
    - master
  # 排除有tag的情况
  except:
    - tags
  tags:
    - docker
  <<: *profile
  script:
    - echo $SHELL_RESULT $CI_BUILD_REF
    - sh dingdingAlter.sh $SHELL_RESULT $CI_BUILD_REF

参考链接

Gitlab CI Artifacts not found - Questions & Answers / GitLab CI - GitLab Forum https://forum.gitlab.com/t/gitlab-ci-artifacts-not-found/7588

Files exists but can't be used to build artifacts. (#15530) · Issues · GitLab.org / GitLab Community Edition · GitLab https://gitlab.com/gitlab-org/gitlab-ce/issues/15530