Requirements
- Terraform 0.10.x
- Go 1.11 (to build the provider plugin)
Building The Provider
Clone repository to: $GOPATH/src/github.com/twilio/terraform-provider-twilio
$ mkdir -p $GOPATH/src/github.com/twilio; cd $GOPATH/src/github.com/twilio
$ git clone git@github.com:twilio/terraform-provider-twilio
Enter the provider directory and build the provider
$ cd $GOPATH/src/github.com/twilio/terraform-provider-twilio
$ make build
Note: For contributions created from forks, the repository should still be cloned under the $GOPATH/src/github.com/twilio/terraform-provider-twilio directory to allow the provided make commands to properly run, build, and test this project.
Using the provider
If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init to initialize it.
Further usage documentation is provided in usage.md.
Developing the Provider
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.11+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.
To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.
$ make build
...
$ $GOPATH/bin/terraform-provider-twilio
...
In order to run the full suite of Acceptance tests, run make testacc. Provide your Account SID and Auth Token as environment variables to properly configure the test suite.
Note: Acceptance tests create real resources, and often cost money to run.
$ make testacc ACCOUNT_SID=YOUR_ACCOUNT_SID AUTH_TOKEN=YOUR_AUTH_TOKEN
An example test file can be found here.
Inspirations and References
We found these resources to be helpful in guiding Twilio's Terraform Provider implementation and in illustrating Terraform's documentation:
Debugging
First:
$ export TF_LOG=TRACE
then refer to the Terraform Debugging Documentation.