When using Command.Env, if you send nil as a value, it will use all of the environment variables from os.Environ() when executing the command.
In order to not break the current tests and be coherent with the current relationship, we are appending the created environment variables with os.Environ() only when we have at least 1 environment variable to override.
This commit will enable the plugin to do parallel builds.
The first change is to use Terraform's TF_DATA_DIR environment variable to change the state directory so they will not conflict each other in parallel executions
The second change is to change the plan's output to a different file so they will not be overriden by another parallel execution
Allows us to set environment variables that could be the named the same between multiple steps, but have different values due to enivronmental differences.
This is a redo of #28 because I'm bad at git. The secrets are exported so that they can be used in any other flag in this plugin.
* Adding targets section for configuration
Will add a --target <resource> for each item in a comma separated list to the plan and apply commands
Updated the docs to show the new behavior. If left undefined there is no regression in functionality.
* Combine the --target append steps
No reason to waste lines
* Updating docs for YAML list of strings
* Documentation for single and multiple targets
Add 'parallelism' parameter to limit the number of concurrent operations as Terraform walks its graph.
Download glibc-2.21-r2.apk from 'github.com/sgerrand/alpine-pkg-glibc' as 'circle-artifacts.com/gh/andyshinn/alpine-pkg-glibc' is not available.
Correct 'terraform apply' with parallelism option.
Run 'go fmt'.
Terraform will pull and cache config. This causes issues if you
try to change remotes as the cache will be pushed to your remote
when it initializes the new remote.