yaml
This commit is contained in:
75
.gitlab-ci.yml
Normal file
75
.gitlab-ci.yml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# GitLab CI/CD пайплайн для Go (вариант 13)
|
||||||
|
# Автор: Коробов Ф
|
||||||
|
# Дата: 2026
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- lint
|
||||||
|
- test
|
||||||
|
- build
|
||||||
|
|
||||||
|
variables:
|
||||||
|
GO_VERSION: "1.21"
|
||||||
|
CGO_ENABLED: "0"
|
||||||
|
|
||||||
|
|
||||||
|
cache:
|
||||||
|
key: ${CI_COMMIT_REF_SLUG}
|
||||||
|
paths:
|
||||||
|
- .cache/go-mod
|
||||||
|
|
||||||
|
lint:
|
||||||
|
stage: lint
|
||||||
|
image: golang:${GO_VERSION}
|
||||||
|
before_script:
|
||||||
|
- mkdir -p .cache/go-mod
|
||||||
|
- export GOPATH=$CI_PROJECT_DIR/.cache
|
||||||
|
- go mod download
|
||||||
|
script:
|
||||||
|
- echo "=== Lint: go vet ==="
|
||||||
|
- go vet ./...
|
||||||
|
allow_failure: false
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
- merge_requests
|
||||||
|
|
||||||
|
test:
|
||||||
|
stage: test
|
||||||
|
image: golang:${GO_VERSION}
|
||||||
|
before_script:
|
||||||
|
- mkdir -p .cache/go-mod
|
||||||
|
- export GOPATH=$CI_PROJECT_DIR/.cache
|
||||||
|
- go mod download
|
||||||
|
script:
|
||||||
|
- echo "=== Test: go test with coverage ==="
|
||||||
|
- go test -v -coverprofile=coverage.out ./...
|
||||||
|
- go tool cover -func=coverage.out
|
||||||
|
- go tool cover -html=coverage.out -o coverage.html
|
||||||
|
artifacts:
|
||||||
|
name: "coverage_report"
|
||||||
|
paths:
|
||||||
|
- coverage.out
|
||||||
|
- coverage.html
|
||||||
|
expire_in: 1 week
|
||||||
|
coverage: '/^total:\s+\(statements\)\s+(\d+\.\d+)%/'
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
- merge_requests
|
||||||
|
|
||||||
|
build:
|
||||||
|
stage: build
|
||||||
|
image: golang:${GO_VERSION}
|
||||||
|
before_script:
|
||||||
|
- mkdir -p .cache/go-mod
|
||||||
|
- export GOPATH=$CI_PROJECT_DIR/.cache
|
||||||
|
- go mod download
|
||||||
|
script:
|
||||||
|
- echo "=== Build: go build ==="
|
||||||
|
- go build -o app-variant-13 ./...
|
||||||
|
artifacts:
|
||||||
|
name: "binary_${CI_COMMIT_SHORT_SHA}"
|
||||||
|
paths:
|
||||||
|
- app-variant-13
|
||||||
|
expire_in: 1 hour
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
- tags
|
||||||
Reference in New Issue
Block a user