天天看點

記gitllab ci無法存儲建構物的問題

轉載于http://blog.c7d8.com/blog/8.html,原文可能有更新,以原文為準

在給測試搭建自動化測試環境工程中需要将測試報告收集起來,以便測試分析,但通過如下配置

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
           

發現配置一直緩存不了,是以也沒法下載下傳收集的日志,而且官方文檔并沒有提及相應的限制

記gitllab ci無法存儲建構物的問題

最後發現是很多人給官方提了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

繼續閱讀