Continuous Integration release notes
These release notes describe recent changes to Harness Continuous Integration.
- Progressive deployment: Harness deploys changes to Harness SaaS clusters on a progressive basis. This means that the features described in these release notes may not be immediately available in your cluster. To identify the cluster that hosts your account, go to your Account Overview page in Harness. In the new UI, go to Account Settings, Account Details, General, Account Details, and then Platform Service Versions.
- Security advisories: Harness publishes security advisories for every release. Go to the Harness Trust Center to request access to the security advisories.
- More release notes: Go to Harness Release Notes to explore all Harness release notes, including module, delegate, Self-Managed Enterprise Edition, and FirstGen release notes.
September 2024
Version 1.48
Early Access feature
- Test Intelligence for C# (.Net Core 6.0+) support is now available in early access. If you wish to use the .Net smart test selection, please contact Harness Support to enable it within your pipeline.
Fixed issues
-
Addressed an issue where some discrepancies in credits usage were reported for a small group of Harness Cloud customers. (CI-14422)
-
Resolved an issue where passing JSON as build arguments in the Docker build and push step resulted in errors due to improper parsing. The fix ensures JSON values are now handled correctly without adding extra slashes. (CI-14137, ZD-65727)
-
Added support for automatic setup of Build Intelligence for builds running in Harness Cloud. Customers can set the stage property 'buildIntelligence' to 'true' in order to use this feature. Once enabled, Harness CI will automatically optimize Run and Test steps that are running Bazel or Gradle commands, to reduce build time with Build Intelligence. For details, check out the documentation. (CI-13729)
Version 1.47
Fixed issues
- Resolved an inconsistency between the Run and Plugin step configuration in the CI module. Previously, users could set key-value pairs in the Run step but not in the Plugin step. The fix enables the "Optional Configuration --> Settings" field in the Plugin step to accept value as runtime input with default values and allowed values (CI-14038, ZD-69099)
Version 1.46
New features and enhancements
-
Added support for setting Topology Spread Constraints to Kubernetes build pods. A new property,
podSpecOverlay
, has been introduced in the Kubernetes infrastructure properties within the CI stage, allowing users to apply additional settings to the build pod. Currently, this field supports specifyingtopologySpreadConstraint
, with plans to extend support for additional configurations in the future. (CI-14033) -
Added the ability to exclude connectors from the preflight check. This can be configured in the connector YAML by setting the property
ignoreTestConnection
totrue
. If the user sets this flag astrue
along with the feature flagCI_IGNORE_TEST_CONNECTION
enabled, no matter the configuration, the connection test will always be marked as Successful. The feature is gated behind the feature flagCI_IGNORE_TEST_CONNECTION
. (CI-13806, ZD-65275,65643)
Version 1.45
Early Access feature
- Added support for automatic setup of Build Intelligence for builds running in Harness Cloud. Customers can set the stage property
buildIntelligence
to 'true' in order to use this feature. Once enabled, Harness CI will automatically optimize Run and Test steps that are running Bazel or Gradle commands, to reduce build time.CI_ENABLE_BUILD_CACHE_HOSTED_VM
feature flag is needed to use this feature (CI-12969)
New features and enhancements
- Cache Intelligence was enhanced with support for C# . Customers using C# applications can now leverage automatic dependencies caching with Cache Intelligence. (CI-12672)
Fixed issues
-
Fixed an issue where time savings due to Harness CI intelligence feature, didn't populate properly when used in the parallel CI stages. (CI-13993)
-
Due to Docker rate limiting,
CI_ENABLE_BASE_IMAGE_DOCKER_CONNECTOR
feature flag must be enabled whenever a base image connector is used (CI-13924) -
Bitbucket has an issue in their API; it does not support the slash character ( / ) https://jira.atlassian.com/browse/BCLOUD-20223 This can be worked around by using query parameters in the Bitbucket api
https://api.bitbucket.org/2.0/repositories/smjth/originalrepo/?at=qq/ww
(CI-13826) -
The contrast of the select repository and other areas of the UI was very low in the dark theme. The contrast has been improved for a better UI experience. (CI-13530)
August 2024
Version 1.44
New features and enhancements
- Added a new setting in the account default settings under CI named ‘Upload Logs Via Harness’, allowing customers to route CI step execution logs through Harness’ log service instead uploading them directly from the build environment. This was previously behind a feature flag, but is now available for all users. (CI-13647)
Fixed issues
-
For SMP customers, the 'getting started' flow for CI has been removed from the side navigation. (CI-13821)
-
Fixed an issue with 'Build and Push' step where a faiure occured when the registry URL in the Doceker connector had a port configured. This issue occurred because everything after the first ':' was being considered as the tag of the image, leading to an invalid Fully Qualified Name (FQN) and causing the Initialize step to fail in the Kubernetes flow. The fix ensures that the FQN is properly considered when the registry endpoint includes a port number. (CI-13770, ZD-66772)
Version 1.43
Fixed issues
-
Resolved an issue where artifacts did not appear in the artifacts tab of the CI stage when using the 'build and push' steps with Buildx instead of Kaniko. (CI-13576, ZD-63222,65912)
-
Corrected the visibility of the
NodeSelector
field label in the CI stage infrastructure tab when using Kubernetes infrastructure. The reference for the node selector string has been fixed to ensure the label is properly populated. (CI-13867) -
Runtime-input options were not showing for environment variables in run-step while using it as template. Corrected by adding a check to see if the step is a template to allow for its proper usage. (CI-13640, ZD-67460)
Version 1.42
Fixed issues
- Fixed an issue where pipeline failures at the initialization step resulted in the entire pod YAML, including environment variables with secrets, being logged as an error. The log level has been changed to debug to prevent sensitive data exposure, and a new log has been added to capture essential details without including the full object. (CI-13785)
Version 1.41
New features and enhancements
- Harness Intelligence features optimize your 'Build' stages by reducing execution time through advanced caching caapbilities and Test Intelligence. With this release, we've added stage savings data to stage summary of 'Build' stages where saving is observed, as well as further insight into the optimization on the step level. To learn more, visit Intelligence Savings Documentation (CI-13252)
Fixed issues
-
Implemented server-side sorting by duration for unit test results in the Tests tab. (CI-13115,11642, ZD-59178)
-
Removed the CI onboarding flow for new projects on SMP environments, where users were previously directed to a 'Get Started' page that could fail due to
clientSecret
setup for Stripe. Now, customers will be directed to the Overview page instead. Upcoming releases will include changes to completely remove the Get Started option from the side navigation for SMP customers, ensuring it is no longer visible. (CI-13687) -
Fixed an issue where external endpoints were used for internal communication with logs service, causing token authentication failures and 401 errors. The issue was resolved by ensuring internal communication for the services. (CI-13686)
-
Improved error message for anonymous base image connector option in the 'Build and Push' steps. (CI-13562)
-
Fixed an issue where pipelines were getting queued when running concurrently. The fix ensures that the flush API log lines are sanitized to be less than 4MB, avoiding grpc
ResourceExhausted
failures. (CI-12879, ZD-64595)
July 2024
Version 1.39
Early Access feature
This release introduces several highly requested features and improvements to enhance the Git clone operations within Harness, in both the Git Clone step and the native Clone Codebase functionality. With this release, we’re adding support for:
-
Git LFS - Allows users to clone repositories with large file storage (LFS) efficiently.
-
Fetch Tags - Enables fetching of tags during the clone operation.
-
Sparse Checkout - Enables cloning specific subdirectories.
-
Clone Submodules - Adds options for including and recursively cloning Git submodules.
-
Clone Path Customization - Exposes the clone path in the codebase section, allowing users to specify a custom clone directory.
-
Additional Pre-Fetch Command - Ability to specify any additional Git commands to run before fetching the code.
For more information, please refer to the documentation. (CI-12952, CI-13239)
This feature is behind the feature flag CI_GIT_CLONE_ENHANCED
.
Fixed issues
-
Fixed an issue where the Harness Build URL could exceed 255 characters if the projectId, orgId, or PipelineId identifiers were too long. Changes have been made to remove stageExecId from the Build URL to reduce the URL length in the case of non-matrix stages. (CI-13402, ZD-66211)
-
Fixed an issue where SSH account-level Git connectors were failing during the connection test and status checks due to using an incorrect port. (CI-13578, ZD-67248,67266)
-
Fixed an issue where the Docker build and push steps using Docker Layer Caching (DLC) might fail while downloading the cache if the feature flag
CI_DLC_SIGNED_URL
is turned on. (CI-13508, ZD-66950)
Version 1.38
Fixed issues
-
Fixed issues where the Git status update was not being sent to PRs and the PR link in the execution pipeline was incorrect, redirecting back to the same execution link. The PR link redirect was not working for the input expression
<+trigger.payload.pull_req.number>
, so support for this expression has been added. (CI-11759) -
Fixed an issue where customers could not change the Build configuration from Runtime Input to an expression when setting up the CI Build stage. This fix allows customers to set an expression for the Build configuration of the CodeBase, enabling uniform build names across multiple child pipelines. Customers can now set the Build Type to a fixed value from Runtime Input and then set the branch/tag/pr as an expression, related to chained pipelines. (CI-13268, ZD-66080)
-
Fixed an issue where the plugin image path was incorrect when the registry endpoint had a port configured. This issue occurred because everything after : was being considered as the tag of the image, leading to an invalid Fully Qualified Name (FQN) and causing the Initialize step to fail in the Kubernetes flow. The fix ensures that the FQN is properly considered when the registry endpoint includes a port number. (CI-13455, ZD-66772)
-
Removed OIDC token logging from error messages to prevent potential exposure of sensitive information. (CI-13515)
Version 1.37
Fixed issues
-
Fixed an issue where the
Build and Push to GCR
step was failing. Buildx plugin version has been upgraded. (CI-13422) -
Upgraded Kaniko version to fix an issue where the
Build and Push to ECR
step did not preserve permissions via chmod. (CI-13200, ZD-65907) -
Fixed an issue where logging for engine:main experienced a race condition. Initially, when a SIGTERM signal was received, one thread would begin closing the logger while another thread continued uploading logs to engine:main, leading to a race condition. This caused incorrect logging of pod eviction during successful executions. The threads have been synchronized to ensure log uploads complete before the logger is closed, accurately recording pod evictions only during errors. (CI-13175, ZD-65545)
This is behind the feature flag: CI_ENGINE_LOG_UPLOAD_CONCURRENCY
.
- Fixed an issue where, if the base image connector is overridden, the Docker build step does not work. With this fix, Docker-related images now properly gain privilege if the default connector is overridden.
buildx
images are now located [here] (https://hub.docker.com/search?q=plugins%2Fbuildx). These images are added to the auto-privilege mode. Without this privilege, the image does not run. (CI-12583)
Version 1.36
Fixed issues
- Fixed an issue where the status in Bitbucket showed the build as in progress even though the build succeeded in Harness CI. (CI-13151, ZD-65593)
- CI - Getting Started Page Visibility: Resolved an issue where the "Getting Started" page for CI was not visible to users without account-level edit permissions. (CI-12510)
Version 1.35
Early Access feature
-
When you include a step that uses a private Docker registry, the step now uses the URI specified in the Docker connector. This means that you no longer need to specify the Fully Qualified Name in the Image field. This change applies to the following steps: Plugin, Background, Run, Run Tests, and Test Intelligence. (CI-10500, ZD-64406, ZD-64735, ZD-65011, ZD-66227)
This is an early access feature behind the feature flag
CI_REMOVE_FQN_DEPENDENCY
. Contact Harness Support to enable this feature.
Fixed issues
- Fixed an issue where the status in Bitbucket showed the build as in progress even when the build succeeded in Harness CI. (CI-13151, ZD-65593)
- Improved the error message that gets displayed when an incompatible Docker version causes the pipeline to fail. (CI-12612, ZD-63466)
- Implemented a fix to ensure that all account-level secret references use the correct format (
<+secrets.getValue("account.MY_SECRET_ID")>
) in all build infrastructures. With this fix, pipelines will fail if account-level secrets are not referenced correctly. (CI-12595, ZD-63260)
June 2024
Version 1.34
Fixed issues
- Added a fix to support merge events for Bitbucket Server PR builds with refs as
refs/heads/targetBranch
. (CI-12710, ZD-57511, ZD-65148) - Fixed an issue where pipelines with Docker Layer Caching enabled would fail with the error
Failed to get link with status 400
. (CI-13070)
Version 1.33
New features
- Added support for AWS connectors to assume external roles to STS (Security Token Service) credentials for cache plugins. (CI-12851)
Fixed issues
- Fixed an issue where default values were not populated when entering runtime inputs for environment variables in a Run step. (CI-12906, ZD-64897)
- Fixed a UI issue where the Codebase icon (right menu) showed the status as not valid, even when the provider was chosen as Harness code repo and the repository was selected. (CI-12750)
- Fixed an issue where the YAML editor allowed saving invalid environment variables in a Run step. (CI-12730)
- Fixed an issue where certain keywords in a script could cause the step to fail with an "Invalid step" error. (CI-12708, ZD-63932)
- Fixed an issue where the Docker LABEL set in a Build and Push step does not override the LABEL configured in the Dockerfile. With this fix, you can now use buildx rather than kaniko to build your container images. You must run buildx on k8s with Privileged mode enabled. This fix is behind the feature flag CI_USE_BUILDX_ON_K8. Contact Harness Support to enable this fix. (CI-12548, ZD-63222)
Version 1.32
Fixed issues
-
CI builds were running slowly in some cases. This release includes the following fixes to address this issue. (CI-10042, ZD-52559)
-
Added extra resources for running
addon
. This feature is behind the feature flagCI_EXTRA_ADDON_RESOURCE
. Contact Harness Support to enable the feature. -
Updated LE to addon communication to retry every 300ms 30 times, for a total of 9 seconds.
-
Disabled resource consumption logs for addon.
-
-
Fixed an issue where pipelines failed intermittently due to delegate selection and task distribution problems when multiple delegates are configured with the same selector tag. (CI-12788, ZD-64246)
-
Running
unittest
in a Run step resulted in the errorsh: unittest not found in some cases
. With this fix, pipelines now runpython unittest -m
which supports more image types. (CI-12795) -
In some cases, the Image Pull Policy setting didn't work as intended when running builds in Docker and VM build infrastructures. (CI-11703)
Version 1.30
New features and enhancements
-
Enabled Secure Connect support for Mac and Windows build infrastructures. (CI-12596)
-
Added baseCommitSha in codebase for GitLab PR builds. (CI-12179, ZD-62144)
Fixed issues
-
Fixed an issue where pipelines fail intermittently due to delegate selection and task distribution problems when multiple delegates are configured with the same selector tag. (CI-12788, ZD-64246)
-
Fixed an issue where running a pipeline in debug throws an error saying it is not allowed to be run in this pipeline. (CI-12094, ZD-61519)
-
Fixed a user test that was failing intermittently due to a port-availability issue. (CI-12596)
May 2024
Version 1.29
New features and enhancements
-
Harness Cache Intelligence and Harness-managed Docker layer caching are available for Harness CI Cloud build infrastructure. For other build infrastructures, these features are available in early access.
-
You can now specify the image pull policy in the Pipeline Editor when running builds in Kubernetes. To configure image pull policy go to Infrastructure > Advanced > Image Pull Policy. (CI-12512, ZD-62987)
Early access features
-
You can use Harness Cache Intelligence and Harness-managed Docker layer caching with self-managed build infrastructures. These are early access features behind the feature flags
CI_ENABLE_DLC_SELF_HOSTED
andCI_ENABLE_CACHE_INTEL_SELF_HOSTED
. Contact Harness Support to enable the features. (CI-11953) -
Use the new Test Intelligence step to easily speed up unit testing of Python, Ruby, and Java applications. Test Intelligence accelerates test cycles with smart selection of unit tests, executing only tests impacted by code changes without compromising quality. With this complete step redesign, it is now optimized for ease of use, and Test Intelligence effortlessly integrates into the regular test commands — so no tweaks required from the user. These is an early access features behind the feature flag
CIE_ENABLE_RUNTEST_V2
.
Fixed issues
-
Fixed an issue where cloning a codebase results in an error
/var/run/docker.sock: socket: too many open files
. (CI-12505, ZD-63043) -
Fixed an issue where running a pipeline in debug throws an error saying it is not allowed to be run in this pipeline. (CI-12094, ZD-61519)
-
Fixed an issue where, if the base image connector is overridden, the Docker build step does not work. With this fix, Docker-related images now properly gain privilege if the default connector is overridden.
buildx
images are now located here. These images are added to the auto-privilege mode. Without this privilege, the image does not run. (CI-12583)
Version 1.28.2
New features
-
Added support for proxies via Secure Connect for GitHub App connectors. (CI-12130, ZD-61883)
This item requires Harness Delegate version 24.05.83001. For information about Harness Delegate features that require a specific delegate version, go to the Delegate release notes.
Fixed issues
-
Added a validation to Git Clone steps to ensure that the step has a Git connector and repository selected before applying changes. (CI-12477)
-
Harness Code explicit git clones are now supported on Kubernetes build infrastructures. (CI-11952, ZD-60998)
-
Fixed an issue where the CI Getting Started page sent multiple requests to fetch Harness Code repositories. This occurred whenever the page was updated or the Git connector was updated. With this fix, the Getting Started page sends one request only when it needs to fetch the list of repositories. (CI-10770)
Version 1.27.4
Early access feature
- This release adds support for selecting resource classes in Harness Cloud, which you can use to select specific infrastructure resources. This is an early access feature behind the feature flag
CI_ENABLE_RESOURCE_CLASSES
. Contact Harness Support to enable the feature. (CI-10509)
Fixed issues
-
Added support for proxies via Secure Connect for Github App connectors. (CI-12130, ZD-61883)
This item requires Harness Delegate version 24.05.83001. For information about Harness Delegate features that require a specific delegate version, go to the Delegate release notes.
-
Harness Code explicit git clones are now supported on Kubernetes build infrastructures. (CI-11952, ZD-60998)
-
Fixed a UI issue where the Pipeline Execution UI didn't update the stage selector correctly if the pipeline used a parallelism or matrix strategy. As a result, users could not see artifacts properly. (CI-12047)
Version 1.26.3
Early access feature
- This release includes new default settings that enable you to configure S3-compatible caching in self-hosted build infrastructures. You can configure the endpoint URL, region, bucket name, access key, and secret key. These options are behind the feature flags
CI_ENABLE_DLC_SELF_HOSTED
(for Docker layer caching) andCI_ENABLE_CACHE_INTEL_SELF_HOSTED
(for Cache Intelligence). Contact Harness Support to enable them. (CI-11953)
Fixed issues
-
Fixed a dynamic resizing issue that could cut off the list of steps when viewing the build details page on a macOS machine. (CI-7952)
-
Fixed an issue where pod cleanups could be missed due to duplicate data. (CI-11995)
-
Introduced a new internal flag that trims commit messages and
pr_title
environment variables at the time of pod creation. This fixes an issue where builds would fail with the errorrpc error: code = ResourceExhausted desc = trying to send message larger than max
. If you experience this error and need to enable this flag in your environment, contact Harness Support. (CI-11709, ZD-59521)
April 2024
Version 1.25.0
Fixed issues
- The built-in clone codebase step now works on Windows platforms for LFS-enabled Git repos. (CI-12038)
- Fixed an issue where pod cleanup could be missed due to duplicate data. (CI-11995)
Version 1.24.2
New features and enhancements
In TI for Ruby, test globs starting with /
are correctly treated as absolute paths. (CI-11819, ZD-57661, ZD-61493)
If you currently use a Ruby test glob pattern starting with /
, you must either replace the leading slash or add **
accordingly.
Early access features
You can enable type selection for output variables in Run steps. If you select the Secret type, Harness treats the output variable value as a secret and applies secrets masking where applicable. This is an early access feature behind the feature flags CI_ENABLE_OUTPUT_SECRETS
and CI_SKIP_NON_EXPRESSION_EVALUATION
. Contact Harness Support to enable the feature.

Fixed issues
- Increased the default machine size for the Harness CI Cloud macOS platform. The default size was inadvertently decreased during a prior upgrade to Sonoma, and some users experienced
No space left on device
errors as a result. (CI-11620, ZD-59225) - Incorporated improvements to address some inconsistencies with test splitting. (CI-11773, ZD-60054)
Version 1.23.1
Early access features
If you need to allow empty environment variables in your CI pipelines, you can enable the feature flag CI_USE_LESS_STRICT_EVALUATION_FOR_MAP_VARS
by contacting Harness Support. (CI-11882, CI-11305, CI-11672, ZD-57626)
This feature flag addresses specific use cases that require handling empty environment variables in CI pipelines, such as:
- Variables related to looping strategies sometimes incorrectly resolving to
null
when included in environment variable expressions. - Potentially empty output variables populating environment variables in child stages.
- Bitrise Workflow Steps requiring empty environment variables.
For more information about CI early access features, go to What's supported for Harness CI.
Fixed issues
- Builds triggered by Bitbucket Server push events now have correct date information in the build history. This issue occurred due to missing date information in the
commits
object returned by the Bitbucket Server API. This change requires Harness Delegate version 24.04.82707 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-11556, ZD-58798) - Fixed an issue where references to deleted/nonexistent secrets sometimes caused pipelines to timeout at the initialize step without any logs. (CI-11891, ZD-60575)
- Added a fix to trim long environment variables, such as the commit message and PR title, during pod creation in stage initialization. This is currently an opt-in fix for affected customers. If you're using a Kubernetes cluster build infrastructure and experiencing initialization timeout with an error message like
rpc error: code = ResourceExhausted desc = trying to send message larger than max
, contact Harness Support to enable this fix in your account. (CI-11709, ZD-59521)
Version 1.21.3
New features and enhancements
- All CI steps send status updates to the Harness Manager directly by HTTP rather than through a delegate. This feature was previously released in beta under the feature flag
CI_LE_STATUS_REST_ENABLED
, and it is now enabled globally. (CI-11770) - BitBucket Cloud limits the key size for sending status updates to PRs, and this can cause incorrect status updates in PRs due to some statuses failing to send. Previously, you could enable the feature flag
CI_BITBUCKET_STATUS_KEY_HASH
if you encountered this issue with BitBucket Cloud. Now, the fix enabled by this feature flag is generally available and enabled by default. Note that adjustments made prior to general availability of this fix might cause some issues with BitBucket PR status updates. You might need to adjust your BitBucket settings if you notice Harness SCM status updates reporting to incorrect PR IDs. (CI-11770)
Fixed issues
When manually running pipelines, the Branch Name no longer unintentionally changes to main
after you input another branch name. This issue occurred due to a backend API call that could sometimes take a long time to respond. (CI-11721, ZD-59730)
March 2024
Version 1.20.2
Fixed issues
Fixed an issue with fallback handling when splitting tests by testcase_timing
, testsuite_timing
, or class_timing
. (CI-11651)
Correction
A prior release note announced that you could set plugin runtime flags as environment variables for Build and Push steps.
This announcement incorrectly implied that the feature applied to all build infrastructures.
Correction: Currently, this feature applies to Kubernetes cluster build infrastructure only. Other build infrastructures can set a limited subset of drone-docker runtime flags as stage variables. The prior release notes and supporting documentation have been updated to reflect this correction.
Version 1.18.2
New features and enhancements
In TI for Ruby, the default test globs pattern is now **/spec/**/*_spec.rb
. Now, by default, TI detects spec
directories anywhere in the stage workspace. You can use the Test Globs setting to override the default test globs pattern if you want change this behavior, for example to limit it to directories at the root level or at a certain path. (CI-11272, ZD-57661)
Early access features
To use delegate selectors with self-managed VM build infrastructure, contact Harness Support to enable the feature flag CI_ENABLE_VM_DELEGATE_SELECTOR
in your account. (CI-11545)
Fixed issues
Fixed an issue where the Get Started wizard failed to generate some pipeline YAML. (CI-11323)
Version 1.17.5
New features and enhancements
- Increased the timeout limit for stage initialization to 30 minutes when using Harness Cloud build infrastructure. (CI-11071)
- You can enable separators for GCS and AWS cache keys to prevent pulling incorrect caches from cloned pipelines. (CI-11185, ZD-57012, ZD-57319)
- When you clone a pipeline that has Save/Restore Cache steps, cache keys generated by the cloned pipeline use the original pipeline's cache key as a prefix. For example, if the original pipeline's cache key is
some-cache-key
, the cloned pipeline's cache key issome-cache-key2
. This causes problems when the Restore Cache step in the original pipeline looks for caches with the matching cache key prefix and pulls the caches for both pipelines. - To prevent this issue, Harness can add separators (
/
) to your AWS/GCS cache keys to prevent accidental prefix matching from cloned pipelines. This feature is disabled by default. To enable the separator, add this stage variable:PLUGIN_ENABLE_SEPARATOR: true
. - If you don't enable the separator, make sure your cloned pipelines generate unique cache keys to avoid the prefix matching issue.
- When you clone a pipeline that has Save/Restore Cache steps, cache keys generated by the cloned pipeline use the original pipeline's cache key as a prefix. For example, if the original pipeline's cache key is
Fixed issues
- The project URL format is now validated when creating Azure Repos connectors. Previously, invalid project URLs passed the field validation but failed the connection test with a nonspecific error message. (CI-11186)
- Added null handling for empty runtime input for the Post-Command in a Run Tests step. Previously, if you configured Post-Command as runtime input and left the field blank at runtime, it would fail the pipeline by supplying
null
as the Post-Command, rather than an empty field. (CI-11365, ZD-58254) - When viewing builds, the running status is now correctly updated for Background steps that are inside step groups. (CI-10239)
- Resolved an issue where expressions could unexpectedly/incorrectly resolve as
null
if those expressions were supplied as environment variables in steps that were in step group templates or other looping strategies. (CI-11305, ZD-57626) - When creating step group templates, you can now configure the Run as User setting for steps that allow this setting. Previously, this setting wasn't shown when creating step group templates. (CI-11332, ZD-58044)
- Pipelines that include test splitting on multiple sequential, parallel, or looped steps now fetch historical test data from the most-recent finished build. Previously, such pipelines would sometimes try to fetch "historical" test data from an earlier test step in the current build, rather than fetching this data from a previous completed build. (CI-11108, ZD-56810)
- GitLab connectors using the SSH connection type no longer fail if the GitLab project name starts with a number. (CI-11392, ZD-58162)
- When using self-signed certificates with Kubernetes delegates, Harness now sanitizes the secret's name so that pod creation doesn't fail due to Kubernetes detecting invalid characters in the secret's name. (CI-11188)
- A version of CI was briefly released that contained a bug in the Harness
plancreator
service that caused multiple pipeline failures. That version was rolled back and the issue has been fixed in this version. (CI-11497, ZD-58699, ZD-58745)
February 2024
Deprecation notice: app.harness Docker registry
Harness images are available on Docker Hub and the Harness project on GCR. In a continuation of this effort, and to improve stability when pulling Harness-required images, Harness is deprecating the Harness-hosted app.harness
Docker registry effective 15 February 2024.
You will be impacted by this deprecation if:
- Your built-in Harness Docker connector (
account.harnessImage
) is configured to theapp.harness
Docker registry. To avoid errors when the deprecation takes place, configure the built-in Docker connector to use credentialed access to Docker Hub or the Harness project on GCR. - You pull Harness images from a private registry, and you are currently pulling the latest images from the
app.harness
Docker registry. To avoid errors when the deprecation takes place, make sure you are pulling images from the Harness project on GCR. - You have other Docker connectors configured to the
app.harness
Docker registry. Edit these connectors to usehttps://registry.hub.docker.com
instead.
Contact Harness Support if you have any questions.
Version 1.13.1
New features and enhancements
- The error message text for the
no eligible delegates present
error now includes additional potential causes. This change requires Harness Delegate version 24.02.82302 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-10933, ZD-55977) - Harness CI no longer stores clone tokens for public GitHub repositories as environment variables, because a token isn't needed to clone public repos. This change requires Harness Delegate version 24.02.82302 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-10938)
- Added some helper text that was missing when creating pipelines through the projects section. (CI-11233)
- The Harness Community team has developed a new plugin to help you automate more processes in your CI pipelines:
- The GCP OIDC Token plugin generates a Google Cloud access token from your OIDC token and then stores the GCP token in an output variable that you can use in subsequent pipeline steps to control Google Cloud Services through API (cURL) or the gcloud CLI.
Fixed issues
- Fixed an issue where pipelines could fail when triggered by BitBucket PRs with more than 25 commits. This error was due to an infinite loop situation that could occur when there was pagination in the BitBucket List PR Commits API payload. This change requires Harness Delegate version 24.02.82302 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-11220, ZD-57421)
- Fixed an issue where the YAML for build stage input sets could have an invalid default value for codebase advanced settings. (CI-11291)
- Addressed a security vulnerability in some CI APIs. (CI-11244, ZD-57445)
- Applied optimizations to address caching errors. (CI-11173, ZD-57173)
Version 1.12.4
New features and enhancements
- With Kubernetes cluster build infrastructure, Build and Push steps support all kaniko runtime flags. You can specify these flags as environment variables in the Build and Push step settings. Currently, this is only supported for Kubernetes cluster build infrastructure. Other build infrastructures can set a limited subset of drone-docker runtime flags as stage variables. (CI-10165, CI-11031)
- To address security vulnerabilities, Reactor-netty libraries have been updated to the latest version in Harness CI images. (CI-10929, ZD-52222, ZD-55562)
- The Harness Community team has developed two new plugins to help you automate more processes in your CI pipelines:
- The Helm Push plugin streamlines packaging and distribution of Helm charts to container registries.
- The Image Migration plugin facilitates copying images across container registries.
Fixed issues
- Addressed an issue where pod deletion didn't trim excess whitespace in namespace names, which could prevent pod cleanup. This change requires Harness Delegate version 24.02.82302 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-10636, ZD-54688)
- Removed excessive, unnecessary health check messages in logs. (CI-11102)
- Added validations to address a runtime error that could occur in the Build and Push to ACR step. (CI-10793, ZD-55412)
- Harness now automatically truncates long pipeline and stage names in PR build status messages, because status updates fail to post if the message exceeds the SCM provider's character limit for such messages. If a pipeline or stage name is truncated, the truncated portion is replaced by ellipses (
...
). (CI-11132, ZD-56864)
Version 1.11.4
New features and enhancements
-
The Harness Cloud macOS image was updated to the latest version of macOS Sonoma, which includes an Xcode upgrade to 15.2 (default) and 15.1. This version of Sonoma is not compatible with earlier Xcode versions. If your pipelines rely on a specific Xcode version, you must update your pipelines accordingly for the new version. For complete image specifications and information about specifying Xcode versions, go to Use Harness Cloud build infrastructure.
-
To support Docker images without a shell, the Command field in Run steps is now optional. (CI-10115, CI-10676)
-
Upgraded Go to the latest version in the CI manager and CI-related plugins, such as
drone-kaniko
. (CI-10800) -
Upgraded kaniko executor to version 1.19.2 in the drone-kaniko plugin, which is used by Build and Push steps, to support Dockerignore with special characters. (CI-10908, ZD-55930)
If you encounter errors in Build and Push steps following this upgrade, you can manually pin an old plugin version, for example:
{
"field": "buildAndPushDockerRegistryTag",
"value": "plugins/kaniko:1.8.3
},
Fixed issues
Modified CSS to address flickering UI elements. (CI-11038, ZD-56510)
January 2024
Version 1.10.2
Fixed issues
- PR status updates now send correctly when using a GitHub App in a GitHub connector with a secret (instead of plain text) for the Application ID. (CI-11025, ZD-56177)
- The Run Tests step now respects the Test Globs setting in TI for Ruby. (CI-10907, ZD-55937)
- Added a missing field validation for Repository Name when using Harness Code Repository as the pipeline's default codebase. (CI-11042)
- Corrected the capitalization of
GitHub
in the GitHub Action plugin step in the step library. (CI-7325) - Improved the error message that appears when there is a connectivity problem between the delegate and runner in a local runner build infrastructure. (CI-10827)
Version 1.9.4
New features and enhancements
- Free plans require credit card validation to use Harness Cloud. If you don't want to provide a credit card, you can use local runner build infrastructure.
- The codebase expressions
<+codebase.sourceBranch>
and<+codebase.targetBranch>
are now alwaysnull
for branch and tag builds. These expressions are primarily for differentiating the target and source branches for PR builds. For branch and tag builds, use<+codebase.branch>
and<+codebase.tag>
. (CI-10743, ZD-55284)
Early access features
Secure connect for Harness Cloud facilitates private networking with Harness Cloud runners. (CI-8922)
Fixed issues
Added indexing to handle a IncorrectResultSizeDataAccessException
error that rarely occurred in builds with matrix looping strategies if some non-unique values were assigned. (CI-10884, ZD-55815)
Version 1.8.2
New features and enhancements
To help identify pods that aren't cleaned up after a build, pod deletion logs now include the cluster endpoint targeted for deletion and the pod identifier, namespace, and API endpoint response for pods that can't be located for deletion. (CI-10636, ZD-54688)
Fixed issues
- Fixed a
NullPointerException
error that occurred if you provided noargs
when configuring Test Intelligence for Ruby. (CI-10847, ZD-55658) - Fixed an issue where pod creation failed in Kubernetes cluster build infrastructures if the pod volume mount key exceeded 63 characters. This change requires Harness Delegate version 24.01.82108 or later. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-10789, ZD-55265)
Version 1.6.3
New features and enhancements
- The Get Started workflow can now auto-generate starter pipelines from Harness Code repositories. (CI-10780)
- Enhanced log retention for custom approval steps. (CI-10273, ZD-53345, ZD-53410)
Deprecations
Documentation for the previously-deprecated Service Dependency step has been removed. The Service Dependency step was deprecated in February 2023 in favor of the Background step.
Previous releases
2023 releases
2023 releases
December 2023
Version 1.5.1
New features and enhancements
- This release introduces a new versioning convention for CI manager.
- Test Intelligence for Ruby is now generally available.
Fixed issues
- Fixed an issue where builds failed in a Kubernetes cluster build infrastructure because certificates from the key chain weren't considered when fetching the entrypoint for the S3 Upload and Publish plugin. (CI-10258, ZD-53311)
- Improved error messaging related to addon disconnects. (CI-8877)
- Fixed an issue with SCM service logging. (CI-8872)
Version 7006
Fixed issues
If you configured an optional step setting (such as Limit Memory, Limit CPU, or Timeout) to accept runtime input (<+input>
), and then provided no value for that setting at runtime, the pipeline could fail due to invalid null
input. This has been fixed, and the effected settings can how handle empty (null
) runtime input. (CI-10514, ZD-54217)
Version 6902
Fixed issues
Improved the error message that appears if the Kubernetes cluster connector ID is null
when running a pipeline that uses a Kubernetes cluster build infrastructure. (CI-8166)
Version 6801
This release includes backend changes only.
November 2023
Version 6704
Hotfix
Fixed an issue related to cache saving with Cache Intelligence.
Version 6703
Fixed issues
- Fixed a thread safety issue that caused errors like
IncorrectResultsSizeDataAccessException
andreturned non unique result
. (CI-10061, ZD-52625) - Fixed a proxy issue related to downloading logs. (CI-9657, ZD-50664)
- Fixed an issue in the Get Started workflow where the account or organization name could be omitted from the repo URL in a GitHub connector created during the workflow.
Version 6603
Hotfix
Fixed an issue related to build queue limits. (CI-10326, ZD-53701)
Version 6601
Fixed issues
- Fixed an issue where time savings wasn't reported if Test Intelligence selected no tests. (CI-10196)
- The Get Started workflow can generate pipeline identifiers from repository names. To avoid failures due to invalid characters in pipeline identifiers, periods (
.
) in repository names are now replaced by underscores (_
) in pipeline identifiers. (CI-10156, ZD-52954) - A previous release simplified the format of the log base key used to download logs for pipelines, and this release includes additional simplifications to support a new regex pattern. The simplified format is behind the feature flag
PIE_SIMPLIFY_LOG_BASE_KEY
. (CI-10085)
Version 6501
New features and enhancements
Build and Push to GAR (CI-9926)
This release includes a new Build and Push to GAR step offering first-class support for build and pushing artifacts to Google Artifact Registry (GAR). Previously, you could use Run steps to build and push to GAR. This new step combines the build and push steps into one streamlined step.
If using this step with Harness Cloud build infrastructure, you can also leverage the new OIDC connectivity mode in your GCP connector.
Due to the GCR deprecation, the Build and Push to GCR step will be deprecated in favor of the new Build and Push to GAR step.
Harness Cloud Windows image update (CI-9750)
The Harness Cloud Windows image has been upgraded to Windows Server 2022. This includes major and minor version upgrades for many components. For a complete list of component versions, go to the Harness Cloud image specifications.
If you have pipelines running on Harness Cloud that rely on specific component versions, you might need to lock versions or install additional tools to prevent your pipeline from failing due to image changes.
Early access features
Delegate selectors for codebase tasks (CI-9980)
Currently, delegate selectors for CI codebase tasks is behind the feature flag CI_CODEBASE_SELECTOR
. Contact Harness Support to enable the feature.
Without this feature flag enabled, delegate selectors aren't applied to delegate-related CI codebase tasks.
With this feature flag enabled, Harness uses your delegate selectors for delegate-related codebase tasks. Delegate selection for these tasks takes precedence in order of pipeline selectors over connector selectors.
Fixed issues
- When you add a Build stage to a pipeline, the Infrastructure tab is selected by default, rather than the Execution tab. (CI-9624)
- To address potential performance issues, resource consumption logs are now disabled for the
ci-addon
service, and the communication retry internal between the Lite Engine and theci-addon
service is now nine seconds. (CI-10042, ZD-52559) - Added a validation to check that codebase configuration details (connector, repo, and so on) are provided if at least one stage in pipeline has Clone Codebase enabled. (CI-10055)
October 2023
Version 6404
New features and enhancements
- The Harness AI Development Assistant (AIDA™️) for CI is now generally available. AIDA for CI provides error analysis and remediation for failed pipelines. Harness bases these recommendations on the step logs and the context of the failed step. For more information, go to Troubleshooting with AIDA.
- When you configure a Kubernetes build farm to use self-signed certificates, you can now use
DESTINATION_CA_PATH
instead ofCI_MOUNT_VOLUMES
andADDITIONAL_CERTS_PATH
. (CI-9707)- For
DESTINATION_CA_PATH
, provide a comma-separated list of paths in the build pod where you want the certs to be mounted, and mount your certificate files toopt/harness-delegate/ca-bundle
. - Both CI build pods and the SCM client on the delegate support this method.
- You can use either method (
DESTINATION_CA_PATH
or bothCI_MOUNT_VOLUMES
andADDITIONAL_CERTS_PATH
). If you specify both,DESTINATION_CA_PATH
takes precedence. If Harness can't resolveDESTINATION_CA_PATH
, it falls back toCI_MOUNT_VOLUMES
andADDITIONAL_CERTS_PATH
. - This item requires Harness Delegate version 23.10.81202. For information about features that require a specific delegate version, go to the Delegate release notes.
- For
- The individual log line limit is now 25KB. Log lines longer than 25BK are truncated. (CI-9927, ZD-52005, ZD-52079, ZD-52134, ZD-52356)
- Upgraded built-in steps to support Windows 2022. (CI-9755)
Fixed issues
- Addressed a NPE issue related to node plan creation. (CI-9890, ZD-51607)
- Fixed an issue where a clone depth of
0
wasn't respected in stages that use a VM build infrastructure. (CI-8711) - Fixed an issue where the Step dropdown menu on the Tests tab sometimes showed step IDs instead of step names. Now, it always shows step names. (CI-6654)
- Revised the error message that is shown when a pipeline fails due to lack of eligible delegates. This item requires Harness Delegate version 23.10.81202. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-9743)
- Optimized delegate logging related to the CI task handler to consume less space. This item requires Harness Delegate version 23.10.81202. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-9771)
Version 6304
Fixed issues
- To address issues with long cache times, Cache Intelligence now uses Zstd archive format. (CI-9815, ZD-51474)
- Long test and class names on the Tests tab no longer push the Copy icon out of the visible area. (CI-9500)
Version 6203
New features and enhancements
You can now enable test splitting for Test Intelligence in the Visual editor as well as the YAML editor. (CI-9618)
Fixed issues
- Fixed an issue where Background step logs weren't correctly called for steps running in parallel. (CI-9801)
- Corrected the rendering of the Stack Trace field when inspecting failed tests from the Tests tab on the Build details page. (CI-9765, ZD-51231)
- Fixed an issue with extra whitespace in step templates when these were used with a Kubernetes cluster build infrastructure. (CI-9723, ZD-49843)
- Fixed an issue where the network driver wasn't available in the Harness Docker Runner for Windows. (CI-9848)
- Fixed an issue that could occur when cloning multiple repos in a stage that used a Windows platform for the build infrastructure. (CI-9128)
- Fixed an issue where some code repo connectors didn't send the build status back to the SCM provider. This happened due to an issue in the Harness Delegate, and it occurred only for code repo connectors that connected through a Harness Delegate. Connectors connecting through the Harness Platform weren't impacted. This item requires Harness Delegate version 23.10.81010. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-9835, ZD-51754, ZD-51758, ZD-51763)
- When a code repo connector encounters a cert error, the error message shown in the Harness UI is now more informative. This item requires Harness Delegate version 23.10.81010. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-8509)
Version 6100
New features and enhancements
When you enable Test Intelligence for Scala or Kotlin, the Packages and Test Annotations fields are now available in the Visual editor. (CI-9589)
Fixed issues
- Fixed an issue with identifiers assigned to steps in matrix looping strategies that occurred if your account was configured to use Matrix Labels by Name and the pipeline contained nested matrix strategies. This issue produced a Null Pointer Exception error. (CI-9680)
- In Kubernetes cluster build infrastructures, non-existent or unresolvable secrets are now handled in the same way as they are in VM and Harness Cloud build infrastructures. (CI-9677, ZD-50868, ZD-50901)
September 2023
Version 5902
New features and enhancements
Test Intelligence now supports manual branch builds (the Git Branch build type). This is in addition to existing support for manual PR builds, as well as PR and push webhook triggers. When you enable Test Intelligence, you can use a manual branch build to generate the initial call graph and for subsequent pipeline runs. (CI-8932)

Early access features
When Troubleshooting with AIDA, stage-level error analysis is available for failed stages without steps. If a stage has steps, step-level error analysis occurs instead. The Harness AI Development Assistant (AIDA™️) for CI is a beta feature that is behind the feature flag CI_AI_ENHANCED_REMEDIATIONS
. (CI-9102)
Fixed issues
- To avoid conflicts with user-provided loggers for .NET builds, Harness installs and injects the default logger only if a logger is not specified in the Run Tests step's Build Arguments. (CI-9240)
- Fixed an issue with UI rendering of error messages related to Test Intelligence call graph visualizations. (CI-9198)
- Fixed two issues related to runtime input (
<+input>
) with Cache Intelligence. (CI-9177)- Previously, if you used runtime input for custom cache paths, Harness wouldn't prompt for your input and, instead, ran the pipeline with an empty path. Now, Harness correctly prompts you for this input when you run the pipeline.
- Previously, if you used runtime input for custom cache keys, you couldn't save the pipeline due to an improper schema validation error. This is fixed.
- If a step used runtime input for conditional execution settings, but no runtime input was provided at pipeline runtime, then the pipeline passed the literal string
<+input>
instead of an empty object. This is fixed. (CI-9428, ZD-50027) - Fixed an issue where build pods weren't cleaned up if Harness selected an invalid delegate for the cleanup task. This could happen if you used delegate selectors based on delegate tags, and multiple delegates had the same tags, but some of those delegates didn't have access to the cluster. Now Harness checks the selected delegate's connectivity to the cluster before assigning a task to that delegate. This item requires Harness Delegate version 23.09.80804. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-8831, ZD-47647)
Version 5803
Hotfix
Addressed an issue related to Cache Intelligence in parallel stages.
Version 5802
Hotfix
Fixed an issue where build pods weren't cleaned up after the build finished. This was due to the cleanup task targeting pods to cleanup by pod IP address. In scenarios where a pod creation request fails, there is no pod IP available for the cleanup task to target. Now, the cleanup task can use pod names or IP addresses. (CI-9699, CI-9688, ZD-51016, ZD-51035, ZD-51064)
Version 5801
New features and enhancements
You can now use the Upload Artifacts to S3 step with buckets with disabled ACLs. (CI-8371, ZD-45677)
Fixed issues
- Fixed an issue where step-level matrix looping strategies failed due to a mismatch in step identifiers. (CI-9325, ZD-49594, ZD-50209)
- When adding Environment Variables for Run steps, the Visual Editor now allows empty values. This matches existing functionality in the YAML editor where you can use empty quotes to specify an empty value, such as
VAR_NAME: ''
. (CI-9148) - Fixed two issues in the Get Started workflow: (CI-9147)
- Removed a redundant field validation for Branch, which is not required if you deselect Store in Git.
- Pipeline Name is no longer ignored. Previously, pipelines were named
Build REPO_NAME
, regardless of what you entered in Pipeline Name.
Version 5602
Fixed issues
- Pipelines failed due to a 409 error that occurs if multiple BuildKit instances attempt to create the same file in a GCP bucket, such as with the Save Cache to GCS step. Now, such errors are ignored when exporting a cache. At the point in a pipeline when a cache is saved, the image is already built and pushed, and errors, such as this 409 error, should not prevent saving the cache. (CI-9323, ZD-49698)
- Removed the
DRONE_WORKSPACE
environment variable from the local runner build infrastructure because it overwrote the working directory. This variable is equivalent to theHARNESS_WORKSPACE
environment variable, which doesn't incorrectly overwrite the working directory. (CI-9303) - Upgraded
io.netty:netty*
to version4.1.94.final
to address vulnerabilities. This item requires Harness Delegate version 23.09.80505. For information about features that require a specific delegate version, go to the Delegate release notes. (CI-8971, ZD-48488)
Version 5504
Fixed issues
Git event webhook triggers based on GitHub Issue comments failed if the GitHub connector connected through the Harness Platform and the account had no delegates. Despite the connector not requiring a delegate, the trigger still failed. This has been fixed. (CI-9150)
August 2023
Version 5408
New features and enhancements
- You can use GitHub connectors with GitHub App authentication in the Git Clone step. (CI-8367)
- Improved support for
DRONE_
environment variables in CI pipelines. This improves compatibility for plugins and makes it easier to migrate from standalone Drone to Harness CI. (CI-7600)
Early access features
- GitHub App authentication for GitHub connectors. (CI-8577)
- This feature requires Harness Delegate version 23.08.80308 or later. For information about features and fixes requiring a specific delegate version, go to the delegate release notes.
- With this feature flag enabled, you can use a GitHub App as the primary authentication method for a GitHub connector.
Fixed issues
- Improved the way Test Intelligence handles tests that call more tests. Previously, this rarely caused inaccurate renderings in the call graph visualization for Java-based tests. (CI-9053)
- Fixed an issue where, if you selected runtime input for the codebase connector and repository name in a pipeline template, these settings reverted to fixed values after saving any other change to the template. (CI-8885, ZD-47680, ZD-47744)
- You can now use expressions, such as those for matrix strategies, in build infrastructure
platform
settings when working in the YAML editor. (CI-6830) - Removed unnecessary wait time at the end of the initialize step, saving approximately 30 seconds. This fix requires Harness Delegate version 803xx or later. For information about features and fixes requiring a specific delegate version, go to the delegate release notes. (CI-9122)
- Fixed an issue where some secrets were not masked as expected in logs. (CI-8134)
- Webhook triggers now reattempt calls to SCM APIs if the connection was reset or there was a server-side error. This fixes an issue where intermittent outages in connections to SCM APIs failed to trigger builds. (CI-8904, ZD-47605)
- Filtering the build list by Build Type: Branch now correctly excludes PR builds. (CI-9322, ZD-48837, ZD-49619)
Version 5301
New features and enhancements
Improved the consistency of built-in codebase expression values across build types. You can now expect similar values for these expressions regardless of build type. For example, <+codebase.commitRef>
now provides a consistent reference for the build, such as refs/heads/BRANCH_NAME
for a branch build or refs/tags/TAG_NAME
for a tag build. (CI-7689)