Skip to content

v4.0.0

Choose a tag to compare

@Resonance1584 Resonance1584 released this 23 Oct 16:33
· 2 commits to main since this release
f59e7c8

What's new in Pipelines v4

Pipelines v4 is nearly a full rewrite of the pipelines implementation within GitHub. Prior to v4 the bulk of the "glue" logic to stitch together various components of the workflow was written in bash. In v4 we've replaced the majority of the bash code with golang code which is both faster, more maintainable and has significantly improved test coverage. v4 also includes a handful of new features:

Support for newer Terragrunt Versions (through to 1.0)

Pipelines v3 has maximum Terragrunt version of 0.84. Pipelines v4 removes this restriction and will support all Terragrunt versions from 0.86.3 through to 1.0+.

Updated Configuration: Deprecating YML and promoting HCL out of beta

As of this release we are promoting HCL to the default configuration language for Pipelines. This release includes additions to the pipelines HCL configuration specification that bring it up to full feature parity with YML, and we intend to build forwards using only HCL. As a result, the YML configuration for Pipelines is now deprecated and will be removed in a future release.

Run-All Log Parsing

Pipelines will now request a custom log format from Terragrunt (via TG_LOG_CUSTOM_FORMAT) and then parse the resulting output into different streams, and present each Unit's output independently and deinterlaced in the pipelines comment engine.

Azure Support

Pipelines v4 includes support for Azure OIDC and state storage. New configuration options are now available in HCL configuration for Azure.

Improved / Faster commenting engine

Pipelines v4 includes a rewrite of several components of the commenting engine which should result in less time spent calculating and posting PR comments.

Improved Drift Detection filters

Pipelines v4 includes a more expressive syntax for filters when triggering drift detection.

Removal of several feature flags

The following feature flags are now all enabled by default:

  • PIPELINES_FEATURE_EXPERIMENT_AGGRESSIVE_CONSOLIDATION
  • PIPELINES_FEATURE_EXPERIMENT_COLOCATED_FILE_UNIT_CHANGE_DETECTION
  • PIPELINES_FEATURE_EXPERIMENT_MINIMIZE_BLAST_RADIUS

--queue-include-units-reading used instead of --units-that-include

Pipelines will now always use --queue-include-units-reading instead of --units-that-include.

Previously, Pipelines would only use the former flag for FileChanged events for the sake of providing greater backwards compatibility, but the minimum supported version of Terragrunt in Pipelines now supports --units-that-include, and this is no longer necessary.

By making this change, Pipelines now behaves more in-line with customer expectations, as customers expect that a file with an .hcl extension read via an HCL function like read_terragrunt_config() should still result in inclusion into the run queue.

Updated Terminology: Module -> Unit

Pipelines v4 now refers to leaf folders with a terragrunt.hcl file as units. Prior versions used the term module. This change aligns Pipelines' terminology with Terragrunt's.

Migration Guide

Please see a full migration guide at https://docs.gruntwork.io/2.0/docs/pipelines/previous-versions/upgrading-github-v3-to-v4

What's Changed

Full Changelog: v3.9.0...v4.0.0