|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # drone-with-go [](http://beta.drone.io/drone-demos/drone-with-go) [](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
- ```
|