What's supported by Harness CI
This page describes supported platforms and technologies for Harness CI specifically.
For information about what's supported for other Harness modules and the Harness Platform overall, go to Supported platforms and technologies.
Harness CI supported platforms and technologies
Harness CI supports a variety of platforms, repos, registries, and related technologies. The following sections list entities or providers with first-class support in Harness CI. Additional entities or providers may be supported through unofficial plugins or scripting.
Source Code Management (SCM)
In addition to built-in codebase cloning and support for Git functionality like Git LFS, subdirectory cloning, and PR status checks, Harness CI supports these SCM providers:
- AWS CodeCommit
- Azure Repos
- Bitbucket
- GitHub
- GitLab
- Harness Code Repository
- Other Git providers through the provider-agnostic Git connector
Build infrastructure
Harness CI offers Harness-managed and self-managed build infrastructure options for a variety of operating systems and architectures, including:
- Harness CI Cloud (built in, Harness-managed, Linux/Windows/macOS)
- Local runners (Linux/Windows/macOS)
- Kubernetes clusters:
- Amazon Elastic Kubernetes Service (Amazon EKS)
- Google Kubernetes Engine (GKE)
- Red Hat OpenShift 4
- Other, platform agnostic
- Self-managed VMs:
- Microsoft Azure (Linux/Windows)
- GCP (Linux/Windows)
- AWS EC2 (Linux/Windows)
- AWS EC2 (macOS) - Harness recommends Harness CI Cloud for macOS builds due to licensing requirements and the complexity of managing macOS VMs with Anka virtualization.
Container registries
- Azure Container Registry (ACR)
- Amazon Elastic Container Registry (ECR)
- Google Artifact Registry (GAR)
- Google Container Registry (GCR) (pending deprecation)
- Docker-compliant registries, such as Docker Hub, GitHub Container Registry (GHCR), and JFrog Docker registries
- Other
For more information, go to Build and push artifacts and images.
Artifact repositories
- JFrog Artifactory
- AWS S3
- GCP GCS
- Sonatype Nexus
- Other
For more information, go to Build and push artifacts and images.
Dependencies and caching
Harness CI supports running dependent services, such as Docker-in-Docker, LocalStack, and PostgreSQL, in Background steps.
Harness offers several caching options, including:
- Harness Cache Intelligence
- AWS S3
- GCP GCS
- Azure storage
Testing frameworks
Harness CI supports popular testing frameworks, including:
- Bazel
- CTest
- Cucumber
- DOTNET CLI
- Go
- Gradle
- JUnit
- Maven
- Minitest
- Mocha
- NUnit
- PHPUnit
- Pytest
- RSpec
- Sbt
- Unittest
- Other
In addition to supporting various test types and tools, Harness CI also supports time saving and quality control functionality like test selection, code coverage, and test splitting. For more information, go to Run tests in CI pipelines.
Harness CI features
For an overview of key CI features, go to Harness CI overview and Harness CI key concepts.
For information about upcoming and recently released features, go to the CI product roadmap, CI release notes.
Harness CI early access features
Some Harness CI features are released behind feature flags to get feedback from a subset of customers before releasing the features to general availability.
You can opt-in to the early access (beta) features for Harness CI described in the following table. Contact Harness Support to enable specific early access features in your Harness account. Include the feature flag or name with your request.
For more information about early access features, including early access features for the Harness Platform, delegate, and other Harness modules, go to Early access features.
Flag | Description | Availability |
---|---|---|
CI_ENABLE_DLC_SELF_HOSTED , CI_ENABLE_CACHE_INTEL_SELF_HOSTED | Harness-managed Docker layer caching and Cache Intelligence for self-managed build infrastructures. | Beta |
CIE_ENABLE_RUNTEST_V2 | Tests V2 step. | Beta |
CI_ENABLE_OUTPUT_SECRETS , CI_SKIP_NON_EXPRESSION_EVALUATION | Type selection for output variables in Run steps. | Beta |
CI_USE_LESS_STRICT_EVALUATION_FOR_MAP_VARS | Allows empty environment variables in CI pipelines. | Beta |
CI_ENABLE_RESOURCE_CLASSES | Support for selecting resource classes in Harness Cloud, which you can use to select specific infrastructure resources. | Beta |
CI_ENABLE_OUTPUT_SECRETS , CI_SKIP_NON_EXPRESSION_EVALUATION | Type selection for output variables in Run steps. | Beta |
CI_USE_LESS_STRICT_EVALUATION_FOR_MAP_VARS | Allows empty environment variables in CI pipelines. | Beta |
CI_ENABLE_DLC , CI_HOSTED_CONTAINERLESS_OOTB_STEP_ENABLED | Docker layer caching for Harness Cloud | Beta |
CI_ENABLE_DLC_SELF_HOSTED , CI_ENABLE_CACHE_INTEL_SELF_HOSTED | 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. (CI-11953) | Beta |
CI_ENABLE_VM_DELEGATE_SELECTOR | Delegate selectors for self-managed VM build infrastructures (CI-11545). With this feature flag enabled, you can use delegate selectors with self-managed VM build infrastructure. | Beta |
CI_SECURE_TUNNEL | Secure Connect for Harness Cloud (CI-8922). Secure Connect for Harness Cloud facilitates private networking with Harness Cloud runners. | Beta |
CI_CODEBASE_SELECTOR | Delegate selectors for codebase tasks (CI-9980). 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. | Beta |
CI_OUTPUT_VARIABLES_AS_ENV | Output variables automatically become environment variables (CI-7817, ZD-39203). With this feature flag enabled, output variables from steps are automatically available as environment variables for other steps in the same Build ( CI ) stage. This means that, if you have a Build stage with three steps, an output variable produced from step one is automatically available as an environment variable for steps two and three.In other steps in the same stage, you can refer to the output variable by its key without additional identification. For example, an output variable called MY_VAR can be referenced later as simply $MY_VAR . Without this feature flag enabled, you must use an expression to reference where the variable originated, such as <+steps.stepID.output.outputVariables.MY_VAR> .For more information on this feature, go to the documentation on Output variables. | Beta |
CI_REMOTE_DEBUG | Remote debugging (CI-8135, CI-8048) Harness CI now supports remote debugging in certain scenarios. You can re-run builds in debug mode through the Builds, Execution, and Execution History pages of the Harness UI. For more information, go to Debug mode. Update (June 2023): Debug mode now supports Python, PowerShell Core ( pwsh ), and debugging in local runner build infrastructures. Debug mode is not supported in the Self-Managed Enterprise Edition. For more information, go to Debug with SSH | Beta |
TI_DOTNET | Test Intelligence for C# when using Test Intelligence v1 with Run Tests step. | Beta |
CI_TI_DASHBOARDS_ENABLED | Test report dashboards. | Beta |
CI_INDIRECT_LOG_UPLOAD | Enables uploading of logs through log service for certain troubleshooting scenarios, for example, if step logs disappear. | Beta |
CI_INCREASE_DEFAULT_RESOURCES | Used to adjust resource allocation limits. This feature flag increases maximum CPU to 1000m and maximum memory to 3000Mi. | Beta |
CI_CONSERVATIVE_K8_RESOURCE_LIMITS | Used to adjust resource allocation limits. This feature flag sets lite engine resource limits to the default minimum (100m CPU and 100Mi memory). | Beta |
CI_USE_BUILDX_ON_K8 | With this flag enabled, a Build and Push step, running on k8s, uses buildx rather than kaniko. You must run buildx on k8s with Privileged mode enabled. | Beta |
CI_REMOVE_FQN_DEPENDENCY | This flag is useful for steps that use a private Docker registry. With this flag enabled, the step uses the URI specified in the Docker connector. This means you don't 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. | Beta |
CI_EXTRA_ADDON_RESOURCE | Used to speed up CI builds by adding more resources for running 'addon`. | Beta |
Harness CI features promoted to GA
Features promoted to general availability (GA) are removed from the early access features table and announced as new features in the CI release notes. The CI release notes also include features released directly to GA.
Here are some CI early access features that were recently promoted to GA:
Flag | Description | GA date |
---|---|---|
CI_ENABLE_DLC , CI_HOSTED_CONTAINERLESS_OOTB_STEP_ENABLED | Harness-managed Docker layer caching for Harness Cloud build infrastructure. | May 2024 |
CI_CACHE_INTELLIGENCE | You can enable and configure Cache Intelligence in the Pipeline Studio's Visual editor. Cache intelligence is GA for Harness Cloud build infrastructure. | May 2024 |
CI_BITBUCKET_STATUS_KEY_HASH | Addresses an issue with Harness build status updates in Bitbucket PRs | April 2024 |
CI_LE_STATUS_REST_ENABLED | Send status updates to Harness Manager directly by HTTP (CI-8338). This feature causes CI steps to send status updates to the Harness Manager directly by HTTP, rather than through a delegate. | Early 2024 |
QUEUE_CI_EXECUTIONS , QUEUE_CI_EXECUTIONS_CONCURRENCY | Queue Intelligence for Harness Cloud | Early 2024 |
CDS_GITHUB_APP_AUTHENTICATION | GitHub App authentication for GitHub connectors (CI-8577). You can use a GitHub App as the primary authentication method for a GitHub connector. | December 2023 |
CI_AI_ENHANCED_REMEDIATIONS | Harness AI Development Assistant (AIDA™️) for CI (CI-8599, CI-8735, CI-9102). The Harness platform leverages Harness AI Development Assistant (AIDA) to revolutionize software delivery processes. By combining AI capabilities with robust DevOps tools, features, and practices, the Harness platform streamlines and accelerates the software delivery lifecycle, and it empowers teams to deliver high-quality applications quickly and efficiently. Its AI-driven predictive analytics, continuous verification, and advanced release orchestration capabilities empower teams to drive innovation, improve efficiency, and ultimately deliver exceptional user experiences. In Harness CI, AIDA provides auto-recognition of failures in pipelines. The root cause analysis (RCA) option generates recommendations for step failures in pipelines. Harness bases these recommendations on the step logs and the context of the failed step. For more information, go to Troubleshooting with AIDA. | October 2023 |
CI_DOCKER_INFRASTRUCTURE | Local runner build infrastructure (CI-5680) A Harness Docker delegate that you can install directly on a host. For more information, go to Set up a local runner build infrastructure. | Early 2023 |