- Issue #372 Replace
master
branch withmain
in documentation - Issue #372 ConditionalApplyPlugin: Support main and master branches
- Issue #372 TerraformTaintPlugin: Support main and master branches
- Issue #432 pass TagPlugin through
-var-file={env}-tags.tfvars
- Issue #417 DestroyPlugin & PassPlanFilePlugin - Terraform Destroy can't be called with a plan file
- Issue #436 Bug Fix: Omit variables and variable files from apply command if a plan file is specified
- Issue #444 Expose optional duration parameter on WithAwsPlugin's
withRole()
- Issue #422 TerraformPlugin and TerraformPluginVersion should implement TerraformInitCommandPlugin
- Issue #379 Support Terraform 0.15. Added
-chdir
argument. - Issue #395 Support Terraform 1.0. Added
-chdir
argument. - Issue #420 Add
withDirectory
argument to PassPlanFilePlugin
- Issue #214 CredentialsPlugin: support more than username/password (Deprecate
withBuildCredentials
) - Issue #399 Add pull request templates, with checkboxes for necessary tasks
- Issue #309 Add the ability to specify terraform-pipeline starting execution workspace directory
- Issue #283 Remove CrqPlugin, as it relies on a Manheim internal tool that is deprecated. Users of CrqPlugin will find a replacement in the Manheim internal
terraform-pipeline-cai-plugins
project. - Issue #409 Update Github Action CI build to run on Java 11
- Issue #407 GithubPRPlugin support for HTTP/2 response headers.
- Issue #393 Testing: Convert from TravisCI to GithubActions
- Issue #280 (partial) Feature: Add TerraformImportPlugin & TerraformImportCommand
- Issue #344 Add PLAN_ONLY parameter to PlanOnlyPlugin
- BREAKING CHANGE This change is a breaking change. Prior to this update, applying the PlanOnlyPlugin would restrict the pipeline to only running
terraform plan
. This update changes behavior to simply providing aPLAN_ONLY
boolean parameter that can be set to restrict the build behavior. It defaults tofalse
.
- BREAKING CHANGE This change is a breaking change. Prior to this update, applying the PlanOnlyPlugin would restrict the pipeline to only running
- Issue #347 Feature: TerraformOutputOnlyPlugin - can restrict a pipeline run to displaying the current state outputs only via new job parameters.
- Issue #318 Feature: Show environment on confirm command page
- Issue #354 Feature: Add TerraformTaintPlugin - Allows performing
terraform taint
orterraform untaint
prior to the plan phase. - Issue #21 Feature: Plugin to run database migration scripts
- Issue #363 Feature: Optionally disable echo on flyway CLI commands
- Issue #365 Feature: Optionally configure flyway username/password through CLI options
- Issue #362 Bug Fix: Apply AnsiColorPlugin on
terraform validate
andterraform init
- Issue #368 Feature: FlywayMigrationPlugin - prompt user again before applying migration. Optionally disable prompt.
- Issue #172 Feature: ConditionalApplyPlugin - can allow apply for specific environments on all branches/PRs.
- Issue #329 Feature: ConditionalApplyPlugin - can be disabled to allow apply on all branches/PRs.
- Issue #320 Bug Fix: GithubPRPlugin should stop on plan errors, and display error to the user.
- Issue #331 Bug Fix: terraform-pipeline should be usable even if Docker-Pipeline-plugin is not installed (and Docker featuers are not used)
- Issue #335 Testing: Rename DummyJenkinsfile to MockWorkflowScript to better distinguish Jenkinsfile references.
- Issue #271 Testing: Cleanup Test resets for any static state. New Resettable and ResetStaticStateExtension available.
- Issue #332 Testing: Junit 4 to 5.7, upgrade hamcrest from 1.3 to 2.2, remove junit-hierarchicalcontextrunner dependency
- 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 - #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 (#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