msrc
/
.gitlab-ci.yml
87 строк · 2.3 Кб
1stages:
2- tests
3
4### Базовая настройка Unit тестирования
5.baseUnitTests: &baseUnitTests
6stage: tests
7image: golang:1.18.0-alpine3.15
8before_script:
9- apk update && apk add --no-cache git gcc libc-dev wget
10script:
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
15artifacts:
16when: always
17name: Unit tests report
18paths:
19- ./test-results.txt
20- ./unit-tests-fails.txt
21expire_in: 2 weeks
22
23### Базовая настройка тестирования с покрытием кода
24.baseCoverageTests: &baseCoverageTests
25stage: tests
26image: golang:1.18.0-alpine3.15
27before_script:
28- apk update && apk add --no-cache git gcc libc-dev wget
29script:
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
37coverage: "/\\(statements\\)\\s+\\d+.?\\d+%/"
38artifacts:
39expire_in: 2 weeks
40reports:
41coverage_report:
42coverage_format: cobertura
43path: coverage.xml
44
45### Unit тестирование для ветки
46UnitTests:
47<<: *baseUnitTests
48allow_failure: true
49rules:
50- if: $CI_PIPELINE_SOURCE == "schedule"
51when: never
52- if: $CI_COMMIT_TAG
53when: never
54- if: $CI_COMMIT_BRANCH
55
56### Unit тестирование для тега
57UnitTests_Final:
58<<: *baseUnitTests
59allow_failure: false
60rules:
61- if: $CI_PIPELINE_SOURCE == "schedule"
62when: never
63- if: $CI_COMMIT_TAG
64- if: $CI_COMMIT_BRANCH
65when: never
66
67### Тестирование с покрытием кода для ветки
68CoverageTests:
69<<: *baseCoverageTests
70allow_failure: true
71rules:
72- if: $CI_PIPELINE_SOURCE == "schedule"
73when: never
74- if: $CI_COMMIT_TAG
75when: never
76- if: $CI_COMMIT_BRANCH == "master"
77
78### Тестирование с покрытием кода для тега
79CoverageTests_Final:
80<<: *baseCoverageTests
81allow_failure: false
82rules:
83- if: $CI_PIPELINE_SOURCE == "schedule"
84when: never
85- if: $CI_COMMIT_TAG
86- if: $CI_COMMIT_BRANCH
87when: never
88