61 lines
1.1 KiB
YAML
61 lines
1.1 KiB
YAML
---
|
|
image: golang:latest
|
|
|
|
variables:
|
|
REPO_NAME: gitlab.com/$CI_PROJECT_PATH
|
|
CGO_ENABLED: 0
|
|
|
|
cache:
|
|
paths:
|
|
- .go/pkg/mod/
|
|
|
|
before_script:
|
|
- mkdir -p $GOPATH/src/$(dirname $REPO_NAME)
|
|
- ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME
|
|
- cd $GOPATH/src/$REPO_NAME
|
|
|
|
stages:
|
|
- test
|
|
- build
|
|
- deploy
|
|
|
|
test:
|
|
stage: test
|
|
before_script:
|
|
- go get gotest.tools/gotestsum
|
|
script:
|
|
- gotestsum --junitfile report.xml --format testname
|
|
artifacts:
|
|
when: always
|
|
reports:
|
|
junit: report.xml
|
|
|
|
cover:
|
|
stage: test
|
|
before_script:
|
|
- go get github.com/t-yuki/gocover-cobertura
|
|
script:
|
|
- go test -coverprofile=coverage.txt -covermode count $REPO_NAME/...
|
|
- gocover-cobertura < coverage.txt > coverage.xml
|
|
artifacts:
|
|
reports:
|
|
cobertura: coverage.xml
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- go build -ldflags "-extldflags '-static'" -o $CI_PROJECT_DIR/indieauth $REPO_NAME/cmd/indieauth
|
|
artifacts:
|
|
paths:
|
|
- indieauth
|
|
|
|
pages:
|
|
image: alpine:latest
|
|
stage: deploy
|
|
script:
|
|
- mv website public
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master |