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
  • VERCEL_TERRAFORM_TESTING_EXISTING_INTEGRATION - a Vercel integration 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

$ task docs

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.