git clone [email protected]:observeinc/terraform-provider-observe.gitWhen it comes to building you have two options:
If you don't mind installing the development version of the provider globally, you can use go install in the provider directory which will build and link the binary into your $GOBIN directory.
go installIf you would rather install the provider locally and not impact the stable version you already have installed, you can use the ~/.terraformrc file to tell Terraform where your provider is. You do this by building the provider using Go.
go build -o terraform-provider-observeAnd then update your ~/.terraformrc file to point at the location
you've built it.
provider_installation {
dev_overrides {
"observeinc/observe" = "path/to/terraform-provider-observe/terraform-provider-observe"
}
# For all other providers, install them directly from their origin provider
# registries as normal. If you omit this, Terraform will _only_ use
# the dev_overrides block, and so no other providers will be available.
direct {}
}
A caveat with this approach is that you will need to run terraform init whenever the provider is rebuilt. You'll also need to remember to comment it/remove it when it's not in use to avoid tripping yourself up.
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.18+ is required).
In order to run the unit tests the provider, you can simply run make test.
make testIn order to run the full suite of acceptance tests, run make testacc.
Note: Acceptance tests create real resources, and often cost money to run.
make testaccTo print debug logs during acceptance tests, including all HTTP requests and responses, set TF_LOG=debug:
TF_LOG=debug make testaccTerraform providers use [Go modules][go modules] to manage the dependencies. To add or update a dependency, you would run the following (v1.2.3 of foo is a new package we want to add):
go get [email protected]
go mod tidy
go mod vendor