40 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
| default:
 | |
|   image: docker:git
 | |
| 
 | |
| stages:
 | |
|   - test
 | |
|   - build
 | |
| 
 | |
| test:
 | |
|   stage: test
 | |
|   image: golang:alpine
 | |
|   variables:
 | |
|     GOPATH: $CI_PROJECT_DIR/.go
 | |
|   before_script:
 | |
|     - mkdir -p .go
 | |
|   script:
 | |
|     - go mod download
 | |
|     - go test ./... -v -coverprofile=coverage.txt -covermode count
 | |
|     - go get github.com/boumenot/gocover-cobertura
 | |
|     - go run github.com/boumenot/gocover-cobertura < coverage.txt > coverage.xml
 | |
|   cache:
 | |
|     paths:
 | |
|       - .go/pkg/mod/
 | |
|   artifacts:
 | |
|     reports:
 | |
|       coverage_report:
 | |
|         coverage_format: cobertura
 | |
|         path: coverage.xml
 | |
| 
 | |
| build:
 | |
|   stage: build
 | |
|   variables:
 | |
|     IMAGE: $CI_REGISTRY_IMAGE
 | |
|     TAG: $CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA
 | |
|   before_script:
 | |
|     - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
 | |
|     - docker info
 | |
|   script:
 | |
|     - docker buildx create --name yggdrasil --use
 | |
|     - docker buildx build --provenance=false --platform linux/amd64,linux/arm64 -t $IMAGE:$TAG --push .
 | |
|     - docker manifest inspect $IMAGE:$TAG
 |