소스 검색

initial commit

master
Bruno FELIX 2 년 전
부모
커밋
1fe68df68e
5개의 변경된 파일129개의 추가작업 그리고 1개의 파일을 삭제
  1. +14
    -0
      .drone.yml
  2. +85
    -0
      DOCS.md
  3. +2
    -1
      README.md
  4. +12
    -0
      main.go
  5. +16
    -0
      main_test.go

+ 14
- 0
.drone.yml 파일 보기

@@ -0,0 +1,14 @@
workspace:
base: /go
path: src/github.com/drone-demos/drone-with-go

pipeline:
test:
image: golang:latest
commands:
- go vet
- go test -v -cover
build:
image: golang:latest
commands:
- go build

+ 85
- 0
DOCS.md 파일 보기

@@ -0,0 +1,85 @@
# drone-with-go [![Build Status](http://beta.drone.io/api/badges/drone-demos/drone-with-go/status.svg)](http://beta.drone.io/drone-demos/drone-with-go) [![Build Status](https://aircover.co/badges/drone-demos/drone-with-go/coverage.svg)](https://aircover.co/drone-demos/drone-with-go)

An example of how to test Go code with Drone.

# Basic Testing
To run basic CI tests use the following in your `.drone.yml` file.

```yaml
build:
image: golang:1.5.3
commands:
- go test ./...
```

In this config `image: golang:1.5.3` references the official Golang Docker image hosted at https://hub.docker.com/r/_/golang/ and Go tests are execute with the `go test ./...` command.

# Advanced Testing

## Environment Variables
Use environment variables to configure Go testing.
Set environment variables with the `build` section's `environment`.

```yaml
build:
image: golang:1.5.3
environment:
- GO15VENDOREXPERIMENT=1
- GOOS=linux
- GOARCH=amd64
- CGO_ENABLED=0
commands:
- go test ./...
```

## Coverage
Drone tests work best with the [Coverage plugin](http://readme.drone.io/plugins/coverage/) and the [aircover.co](https://aircover.co/docs/overview/) service.
We only want to send a coverage report when all tests pass, so the Coverage plugin uses `publish`.
Also, we should specify a particular branch so that coverage reports are consistent.

```yaml
build:
image: golang:1.5.3
environment:
- GO15VENDOREXPERIMENT=1
- GOOS=linux
- GOARCH=amd64
- CGO_ENABLED=0
commands:
- go test -cover -coverprofile coverage.out

publish:
coverage:
when:
branch: master
```

## Plugins
Notification plugins use `notify` for integrations like HipChat.
`publish` is used for publishing GitHub Releases, Coverage reports, and more.
`deploy` is used for deployments to systems like AWS and Rancher.
You can find a list of plugins at [readme.drone.io/plugins](http://readme.drone.io/plugins/).

```yaml
build:
image: golang:1.5.3
environment:
- GO15VENDOREXPERIMENT=1
- GOOS=linux
- GOARCH=amd64
- CGO_ENABLED=0
commands:
- go test -cover -coverprofile coverage.out

publish:
coverage:
when:
branch: master

notify:
hipchat:
from: Your_Project
notify: true
room_id_or_name: Your_Room
auth_token: $$HIPCHAT_DRONE_TOKEN
```

+ 2
- 1
README.md 파일 보기

@@ -1,2 +1,3 @@
# drone-with-go-test
# drone-with-go [![Build Status](http://beta.drone.io/api/badges/drone-demos/drone-with-go/status.svg)](http://beta.drone.io/drone-demos/drone-with-go)

An example of how to test Go code with Drone.

+ 12
- 0
main.go 파일 보기

@@ -0,0 +1,12 @@
package main

import "fmt"

func main() {
fmt.Println(HelloWorld())
}

// HelloWorld is a function that returns a string containing "hello world".
func HelloWorld() string {
return "hello world"
}

+ 16
- 0
main_test.go 파일 보기

@@ -0,0 +1,16 @@
package main

import (
"os"
"testing"
)

func TestMain(m *testing.M) {
os.Exit(m.Run())
}

func TestHelloWorld(t *testing.T) {
if HelloWorld() != "hello world" {
t.Errorf("got %s expected %s", HelloWorld(), "hello world")
}
}

불러오는 중...
취소
저장

Powered by TurnKey Linux.