msrc

Форк
0
/
.gitlab-ci.yml 
87 строк · 2.3 Кб
1
stages:
2
  - tests
3

4
### Базовая настройка Unit тестирования
5
.baseUnitTests: &baseUnitTests
6
  stage: tests
7
  image: golang:1.18.0-alpine3.15
8
  before_script:
9
    - apk update && apk add --no-cache git gcc libc-dev wget
10
  script:
11
    - go version
12
    - go get -v
13
    - go test ./... -v --short >> ../test-results.txt
14
    - cat ../test-results.txt | grep FAIL >> ../unit-tests-fails.txt || true
15
  artifacts:
16
    when: always
17
    name: Unit tests report
18
    paths:
19
      - ./test-results.txt
20
      - ./unit-tests-fails.txt
21
    expire_in: 2 weeks
22

23
### Базовая настройка тестирования с покрытием кода
24
.baseCoverageTests: &baseCoverageTests
25
  stage: tests
26
  image: golang:1.18.0-alpine3.15
27
  before_script:
28
    - apk update && apk add --no-cache git gcc libc-dev wget
29
  script:
30
    - go version
31
    - go get -v
32
    - go get github.com/boumenot/gocover-cobertura
33
    - go test -coverprofile=coverage.txt -covermode count ./...
34
    - go build github.com/boumenot/gocover-cobertura
35
    - ./gocover-cobertura < coverage.txt > coverage.xml
36
    - go tool cover -func=coverage.txt
37
  coverage: "/\\(statements\\)\\s+\\d+.?\\d+%/"
38
  artifacts:
39
    expire_in: 2 weeks
40
    reports:
41
      coverage_report:
42
        coverage_format: cobertura
43
        path: coverage.xml
44

45
### Unit тестирование для ветки
46
UnitTests:
47
  <<: *baseUnitTests
48
  allow_failure: true
49
  rules:
50
    - if: $CI_PIPELINE_SOURCE == "schedule"
51
      when: never
52
    - if: $CI_COMMIT_TAG
53
      when: never
54
    - if: $CI_COMMIT_BRANCH
55

56
### Unit тестирование для тега
57
UnitTests_Final:
58
  <<: *baseUnitTests
59
  allow_failure: false
60
  rules:
61
    - if: $CI_PIPELINE_SOURCE == "schedule"
62
      when: never
63
    - if: $CI_COMMIT_TAG
64
    - if: $CI_COMMIT_BRANCH
65
      when: never
66

67
### Тестирование с покрытием кода для ветки
68
CoverageTests:
69
  <<: *baseCoverageTests
70
  allow_failure: true
71
  rules:
72
    - if: $CI_PIPELINE_SOURCE == "schedule"
73
      when: never
74
    - if: $CI_COMMIT_TAG
75
      when: never
76
    - if: $CI_COMMIT_BRANCH == "master"
77

78
### Тестирование с покрытием кода для тега
79
CoverageTests_Final:
80
  <<: *baseCoverageTests
81
  allow_failure: false
82
  rules:
83
    - if: $CI_PIPELINE_SOURCE == "schedule"
84
      when: never
85
    - if: $CI_COMMIT_TAG
86
    - if: $CI_COMMIT_BRANCH
87
      when: never
88

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.