- Issue #25 Allow 'apply' on branches other than master for some environments
- Issue #321 Upgrade groovy from 2.4.11 to 2.4.12 (fix travisCi failures)
- Issue #311 Fix non-deterministic test failures
- Issue #316 Implement more granular decorations in TerraformEnvironmentStage.
- Issue #250 Implement TerraformEnvironmentStageShellHookPlugin
- Issue #303 Update ValidateFormatPlugin Documentation - additional options command
- Issue #300 Trim whitespace when detecting terraform version from file.
- Issue #299 Support for Global AWS Parameter Store
- Issue #83 Add a plugin to support
terraform fmt
- Issue #296 Allow TagPlugin to be disabled on apply
- Issue #293 withEnv & withGlobalEnv docs
- Issue #175 Pass terraform plan output to apply
- Issue #289 TagPlugin should work with both terraform 0.11.x and 0.12.x
- Issue #254 Auto-convert git/ssh-urls to https with GithubPRPlanPlugin
- Docs
- Issue #268 Fix broken README links
- Issue #275 Alphabetize Plugins in the README
- Terraform Workflow
- Issue #88 Add an optional DestroyPlugin to perform "terraform destroy"
- Issue #261 Require the user to type a confirmation to use the DestroyPlugin
- Issue #256 Make it easy to apply "standard tags"
- Issue #162 Support "plan only" on master
- terraform-pipeline enhancements
- Issue #272 Create a new BuildWithParametersPlugin
- Issue #257 Fix codecov reporting
- Issue #265 Make code coverage more visible - add codecov badge to README
- Issue #24 ConfirmApplyPlugin - allow customization
- Docs
- Issue #225 Simplify Contributor model - create PullRequests against master
- Issue #206 Explain the importance of plugin order
- Issue #219 Declarative Pipeline, Fix documentation - example code does not work
- Docker Agents
- Issue #230 AgentNode Support with PR Plugin - allow Dockerfile agents
- GithubPullRequests
- Issue #193 Support passing branch plans to Github PRs
- Issue #232 GithubPRPlanPlugin breaks with TerraformDirectoryPlugin
- Issue #234 Rename GithubPRPlanPlugin to be consistent
- Issue #244 Simplify GithubPRPlanPlugin configuration - auto construct github URL and slug
- Declarative Pipelines
- Issue #218 Preserve stashes in default declarative pipeline templates
- Terraform
- Issue #102 Support target when running terraform plan and apply
- Issue #210 Support Terraform Landscape Plugin - Terraform Plan reformatting
- Issue #221 Support suffixes for terraform commands
- Issue #222 TerraformInitCommand - withPrefix doesn't support multiple prefixes
- Issue #203 ParameterStoreBuildWrapperPlugin - allow path to be customized
- Issue #192 Apply CredentialsPlugins to all Stages, not just BuildStage
- Issue #151 Fix CPS mismatch errors, reduce meta magic in Jenkinsfile.groovy and Stage decorations
- Issue #194 Add support global tfvars files.
- Issue #198 Fix using only TerraformEnvironmentStages
- Issue #196 Fix defect - Excessive nested closures in Jenkinsfile.init. Drop support for deprecated
Jenkinsfile.init(this,env)
- Issue #87 Add travis CI support to the project
- Issue #186 Add convenience method to detect the version of terraform
- Issue #185 Fix defect: filename parameter is not used in TerraformPlugin.readFile
- Issue #178 Fix broken link to source code in AwssumePlugin docs
- Added the TfvarsFilesPlugin to support adding var files to plan and apply commands.
- Issue #109 Support Terraform 0.12
- Issue #168 Fix typo in Jenkinsfile
- Issue #171 Fix gradlew, so unit tests can run
- Issue #156 Remove and ignore the build directory
- Issue #160 S3BackendPlugin - allow encryption of S3 state
- Issue #132 OpenSource this project.
- Issue #148 Remove
env
as an argument toJenkinsfile.init
, it's not needed. - Issue #42 Enable Declarative pipelines, which in turn, enables Restart From Stage.
- Issue #107 WithAwsPlugin - alternative to AwssumePlugin to assume roles in different accounts
- Issue #106 Use
withGlobalEnv
method on TerraformEnvironmentStage to add global variables to Stages - Issue #143 Fix defect introduced by v4.1, with change to CrqPlugin.
- Issue #142
withEnv
should be executed in order, along with every other plugin. This was not previously the case, so environment variables were not always visible to plugins that might need it.
- Issue #43 AgentNodePlugin - intial support for docker containers in TerraformValidate & TerraformEnvironmentStage
- Issue #111 Improve cross-pipeline configuration for CRQPlugin
- Allow multiple environment variables to configure CRQ_ENVIRONMENT
- Issue #110 Improve cross-pipeline configuration for AwssumePlugin
- Allow case-insensitive
<environment>_AWS_ROLE_ARN
variables - Allow hierarchy for
AWS_ROLE_ARN
variables
- Allow case-insensitive
- Issue #120 Delay when plugins are applied
- This is a change in the plugin behavior. Plugins will now affect TerraformCommands even after they've been instantiated - this was not previously the case.
- The purpose of this, is to allow other Plugins to modify Environment variables. Some TerraformCommands may be affected by the Environment variables at the time in which plugins are applied (eg: S3BackendPlugin). Make sure that all possible environment variables are available at the time in which plugins are applied to the commands.
- Issue #115 Expand configuration for S3BackendPlugin
- Support upper or lower case environment prefixes
- Support general, or environment-specific configuration
- Standardize configuration for region, bucket, dynamodb_table
- ACTION: Deprecated DEFAULT_S3_BACKEND_REGION - use S3_BACKEND_REGION, env_S3_BACKEND_REGION, AWS_REGION, or AWS_DEFAULT_REGION
- ACTION: Deprecated env_S3_BACKEND_DYNAMO_TABLE_LOCK - use S3_BACKEND_DYNAMODB_TABLE, or env_S3_BACKEND_DYNAMODB_TABLE
- Issue #24 ConfirmApplyPlugin - skip human confirmation
- Issue #73 In a single-branch pipeline, allow terraform apply to happen
- Allow custom key pattern in S3BackendPlugin - manheim#117
- Issue #114 Point out DefaultEnvironmentPlugin earlier in README
- Issue #103 Support multiple repos
- Issue #101 Expect test suite to exist locally by default
- Issue #99 Added RegressionStage to allow running automated tests.
- Issue #90 Allow configuration of the directory where Terraform runs
- Issue #67 Support injecting CredentialsPlugin credentials into the BuildStage
- Issue #71 Update README code examples with the latest stable release.
- Issue #80 Fix S3Backend code examples.
- Issue #72 Improve README instructions for setting up a pipeline.
- Issue #84 Support DynamoDb table locking in S3BackendPlugin
- Issue #75 Be able to skip awssume if not doing a cross-account deploy. Disable by not specifying
<environment>_AWS_ROLE_ARN
variable. - Issue #62 Create a new FileParametersPlugin, to set environment variables through properties files.
- Issue #76 The README shows an example of providing a local Customizations class. That doesn't actually work. Remove that from the README until we can find something that works.
- Issue #49 Allow Consul address to be provided in ways other than hard-coding.
- Issue #50 Allow Consul path pattern for environments to be overridden.
- Issue #44 Create a new DefaultEnvironmentPlugin, to provide a terraform variable
environment
by default.
- Issue #33 Add information in the README to control the node label for your pipelines.
- Update README code examples
- TerraformCommand Refactor: use explicit interfaces to customize commands, stop using Closures.
- Add a unit test suite for every plugin
- Add new S3BackendPlugin to support storing terraform state in S3
- Issue #35: turn hardcoded backend path for terraform init into a new ConsulBackendPlugin. BackendPath is no longer set by default.
- Bug fix: Prefer Jenkinsfile.defaultNodeName over environment variable DEFAULT_NODE_NAME when choosing the node to run jobs
- ParameterStoreBuildWrapperPlugin now available, and is the preferred method to retrieve ParameterStore parameters. Start deprecating use of ParameterStoreExecPlugin.
- Optionally stash and unstash an artifact generated by the BuildStage. See Issue #40 (manheim#40)
- Delete and checkout SCM only once, at the beginning of every TerraformEnvironmentStage
- Add a BuildStage.groovy that can be used to insert an arbitrary build script in your pipeline.
- Fix typo in README for ParameterStoreExecPlugin. Example code did not work if you copy-paste.
- Update README with clarifications on Plugin use.
- Add missing AwssumePlugin to README
- Update README with strategies for DRY'ing up plugin configuration.
- Issue #10 - flesh out a general pattern for plugins. These are breaking changes.
- AnsiColorPlugin is no longer active by default. Enable AnsiColorPlugin by calling
AnsiColorPlugin.init()
- CrqPlugin is no longer active by default. Enable CrqPlugin by calling
CrqPlugin.init()
- Combine and rename ParameterStorePlugin to ParameterStoreExecPlugin.
- ParameterStoreExecPlugin is no longer active by default. Enable ParameterExecStorePlugin by calling
ParameterStoreExecPlugin.init()
- New TerraformEnvironmentStagePlugin interface - AnsiColorPlugin and CrqPlugin implements this. Plugins should implement this type of interface going forward.
- StageConditionPlugin is now implemented as a TerraformEnvironmentStagePlugin. It continues to be enabled by default, and continues to default to the master branch.
- Rename StageConditionPlugin to ConditionalApplyPlugin.
- TerraformConfirmPlugin is now implemented as a TerraformEnvironmentStagePlugin. It continues to be enabled by default, with all existing defaults.
- Rename TerraformConfirmPlugin to ConfirmApplyPlugin
- Issue #16: support either HTTPS or SSH urls when constructing repo slug (used for consul state path on terraform plan and terraform apply)
- Add gradle and unit testing
- awssume is no longer used by default in terraform-plan and terraform-apply
- A new AwssumePlugin is available, which will add awssume functionality if you want it
- parameter-store-exec is no longer used by default in terraform-plan, terraform-apply
- A new ParameterStoreExec Plugin is available, which will restore that functionality if you want it.
- Reduce boiler plate code for Jenkinsfile - a new init() method takes in the Script, the environment, and an optional customization class (just needs an init()) method, where you can load any plugins that might customize the behavior of your pipeline (eg: ParameterStoreExec)
- Store the
env
variable for later use - Allow pipeline users to provide a DEFAULT_NODE_NAME environment variable, rather than explicitly specifying it in the pipeline