Skip to content

Latest commit

 

History

History
322 lines (224 loc) · 21.4 KB

CHANGELOG.md

File metadata and controls

322 lines (224 loc) · 21.4 KB

Unreleased

v5.20.0

  • Issue #372 Replace master branch with main 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()

v5.19

  • 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

v5.18

  • 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.

v5.17

v5.16

  • 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 a PLAN_ONLY boolean parameter that can be set to restrict the build behavior. It defaults to false.
  • 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 or terraform 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 and terraform init
  • Issue #368 Feature: FlywayMigrationPlugin - prompt user again before applying migration. Optionally disable prompt.

v5.15

  • 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

v5.14

  • Issue #25 Allow 'apply' on branches other than master for some environments

v5.13

  • 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

v5.12

  • 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

v5.11

v5.10

  • 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

v5.9

  • Docs
  • 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

v5.8

  • 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

v5.7

  • 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

v5.6

  • Issue #203 ParameterStoreBuildWrapperPlugin - allow path to be customized
  • Issue #192 Apply CredentialsPlugins to all Stages, not just BuildStage

v5.5

  • 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)

v5.4

  • 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

v5.3

v5.2

v5.1

  • Issue #156 Remove and ignore the build directory
  • Issue #160 S3BackendPlugin - allow encryption of S3 state

v5.0

  • Issue #132 OpenSource this project.
  • Issue #148 Remove env as an argument to Jenkinsfile.init, it's not needed.
  • Issue #42 Enable Declarative pipelines, which in turn, enables Restart From Stage.

v4.3

  • 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.

v4.2

  • Issue #43 AgentNodePlugin - intial support for docker containers in TerraformValidate & TerraformEnvironmentStage

v4.1

  • 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

v4.0

  • 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

v3.12

  • Issue #24 ConfirmApplyPlugin - skip human confirmation

v3.11

  • 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

v3.10

v3.9

  • Issue #99 Added RegressionStage to allow running automated tests.

v3.8

  • Issue #90 Allow configuration of the directory where Terraform runs

v3.7

  • 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.

v3.6

  • Issue #84 Support DynamoDb table locking in S3BackendPlugin

v3.5

  • 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.

v3.4

  • 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.

v3.3

  • Issue #44 Create a new DefaultEnvironmentPlugin, to provide a terraform variable environment by default.

v3.2

  • Issue #33 Add information in the README to control the node label for your pipelines.
  • Update README code examples

v3.1

  • 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

v3.0

  • Issue #35: turn hardcoded backend path for terraform init into a new ConsulBackendPlugin. BackendPath is no longer set by default.

v2.4

  • 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.

v2.3.1

  • 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

v2.3

  • Add a BuildStage.groovy that can be used to insert an arbitrary build script in your pipeline.

v2.2.1

  • Fix typo in README for ParameterStoreExecPlugin. Example code did not work if you copy-paste.

v2.2

  • Update README with clarifications on Plugin use.
  • Add missing AwssumePlugin to README

v2.1

  • Update README with strategies for DRY'ing up plugin configuration.

v2.0

  • 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

v1.7

  • 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

v1.6

  • 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

v1.5

  • 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)

v1.3

  • 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