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