Skip to content

vercel/terraform-provider-vercel

Vercel Terraform Provider

Requirements

  • Terraform 1.1 or higher
  • Go 1.19 (to build the provider plugin)
  • Task v3 (to run Taskfile commands)

Building The Provider

Clone repository locally and run

$ task build

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.19+ is required).

To compile the provider, run task build. This will build the provider and put the provider binary in the repository root.

$ task build

In addition, you can run task install to set up a developer overrides in your ~/.terraformrc. This will then allow you to use your locally built provider binary.

$ task install

Create a main.tf file on your machine and use the terraform cli to test

$ terraform plan
$ terraform apply

When you are finished using a local version of the provider, running task uninstall will remove all developer overrides.

$ task uninstall

Testing

In order to test the provider, you can simply run task test.

Note: This runs acceptance tests that will create real resources. You should expect that the full acceptance test suite will take some time to run.

The acceptance tests require a few environment variables to be set:

  • VERCEL_API_TOKEN - this can be generated here
  • VERCEL_TERRAFORM_TESTING_TEAM - a Vercel team_id where resources can be created and destroyed
  • VERCEL_TERRAFORM_TESTING_GITHUB_REPO - a GitHub repository in the form 'org/repo' that can be used to trigger deployments
  • VERCEL_TERRAFORM_TESTING_BITBUCKET_REPO - a Bitbucket repository in the form 'project/repo' that can be used to trigger deployments
  • VERCEL_TERRAFORM_TESTING_GITLAB_REPO - a GitLab repository in the form 'project/repo' that can be used to trigger deployments
  • VERCEL_TERRAFORM_TESTING_DOMAIN - a Vercel testing domain that can be used for testing
$ task test

In order to run the tests with extra debugging context, prefix with TF_LOG (see the terraform documentation for details).

$ TF_LOG=INFO task test

To run a specific set of tests, use the -run flag and specify a regex pattern matching the test names.

$ task test -- -run 'TestAcc_Project*'

Building The Documentation

The documentation is autogenerated from Description fields within the provider, and the examples directory. Building the documentation generates markdown in the docs folder, ready for deployment to Hashicorp.