This guide covers configuring continuous integration pipelines for Go projects that use Go Modules. If you’re new to Drone please read our Tutorial and build configuration guides first.
Build and Test
In the below example we demonstrate a pipeline that executes go test
and go build
commands. These commands are executed inside the golang Docker container, downloaded at runtime from DockerHub.
|
|
Please note that you can use any Docker image in your pipeline from any Docker registry. You can use the official golang images, or your can bring your own.
Dependencies
If you decide to split your pipeline into multiple steps you need to make sure each step has access to project dependencies. Dependencies are downloaded to /go
which is outside the shared workspace. Create a named volume to share this directory with all pipeline steps:
|
|
Test Multiple Versions
You can use Drone’s multi-pipeline feature to concurrently test against multiple versions of Go. This is equivalent to matrix capabilities found in other continuous integration systems.
|
|
If you find this syntax too verbose we recommend using jsonnet. If you are unfamiliar with jsonnet please read our guide.
|
|
Test Multiple Architectures
You can use Drone’s multi-pipeline feature to concurrently test your code on multiple architectures and operating systems.
|
|
If you find this syntax too verbose we recommend using jsonnet. If you are unfamiliar with jsonnet please read our guide.