harness-ci

Container-native CI builds with test intelligence, caching, parallelization, and infrastructure management.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "harness-ci" with this command: npx skills add lobbi-docs/claude/lobbi-docs-claude-harness-ci

Harness CI Skill

Container-native CI builds with test intelligence, caching, parallelization, and infrastructure management.

Build Infrastructure

Cloud (Recommended): Zero-config hosted, auto-scaling, pre-installed tools

infrastructure: type: Cloud spec: os: Linux # Linux, MacOS, Windows

Kubernetes: Self-hosted via k8s clusters

infrastructure: type: KubernetesDirect spec: connectorRef: k8s_connector namespace: harness-builds os: Linux

VMs: AWS, Azure, GCP pool-based scaling

Basic Pipeline Structure

pipeline: name: Build Pipeline identifier: build_pipeline properties: ci: codebase: connectorRef: harness_code repoName: my-service build: <+input> stages: - stage: name: Build and Test type: CI spec: cloneCodebase: true infrastructure: type: Cloud spec: os: Linux execution: steps: - step: name: Install type: Run spec: shell: Sh command: npm ci - step: name: Test type: Run spec: command: npm test -- --coverage - step: name: Build type: Run spec: command: npm run build

Step Types

Run: Execute shell commands

  • step: name: Build type: Run spec: shell: Sh command: npm run build envVariables: NODE_ENV: production resources: limits: memory: 2Gi cpu: "1"

RunTests (Test Intelligence): Language/framework-aware test execution

  • step: type: RunTests spec: language: Java # Java, Kotlin, Scala, C#, Python, Ruby buildTool: Maven # Maven, Gradle, Bazel, etc. runOnlySelectedTests: true # Enable TI enableTestSplitting: true # Parallel execution testAnnotations: org.junit.Test packages: com.myapp

Docker Registry Build/Push

  • step: name: Build and Push type: BuildAndPushDockerRegistry spec: connectorRef: docker_connector repo: myorg/myapp tags: [<+pipeline.sequenceId>, <+codebase.shortCommitSha>, latest] dockerfile: Dockerfile caching: true buildArgs: VERSION: <+pipeline.sequenceId>

ECR/GCR/ACR: Replace BuildAndPushDockerRegistry with BuildAndPushECR , BuildAndPushGCR , or BuildAndPushACR with appropriate connector refs.

Caching

S3 Cache:

  • step: name: Save Cache type: SaveCacheS3 spec: connectorRef: aws_connector bucket: harness-cache key: npm-{{ checksum "package-lock.json" }} sourcePaths: [node_modules]
  • step: name: Restore Cache type: RestoreCacheS3 spec: connectorRef: aws_connector bucket: harness-cache key: npm-{{ checksum "package-lock.json" }} failIfKeyNotFound: false

GCS Cache: Replace S3 steps with SaveCacheGCS /RestoreCacheGCS .

Parallelism

Matrix Strategy: Run steps with multiple configurations

  • step: name: Test Matrix type: Run spec: command: npm test envVariables: NODE_VERSION: <+matrix.nodeVersion> DB_TYPE: <+matrix.database> strategy: matrix: nodeVersion: ["16", "18", "20"] database: [postgres, mysql] maxConcurrency: 4

Parallelism: Run same step multiple times

  • step: name: Parallel Tests type: Run spec: command: npm test -- --shard=$HARNESS_STAGE_INDEX/$HARNESS_STAGE_TOTAL strategy: parallelism: 4

Parallel Step Groups:

  • stepGroup: name: Parallel Build steps: - parallel: - step: name: Build Frontend type: Run spec: command: npm run build:frontend - step: name: Build Backend type: Run spec: command: npm run build:backend

Background Services

Start services (databases, caches) for integration tests:

  • step: name: PostgreSQL type: Background spec: image: postgres:14 envVariables: POSTGRES_USER: test POSTGRES_PASSWORD: test POSTGRES_DB: testdb portBindings: "5432": "5432" resources: limits: memory: 1Gi

  • step: name: Wait for DB type: Run spec: command: until pg_isready -h localhost -p 5432; do sleep 1; done

Plugins & Actions

Slack Notification:

  • step: name: Notify Slack type: Plugin spec: image: plugins/slack settings: webhook: <+secrets.getValue("slack_webhook")> channel: builds template: "Build {{#success build.status}}succeeded{{else}}failed{{/success}}"

S3 Upload:

  • step: name: Upload Artifacts type: Plugin spec: image: plugins/s3 settings: bucket: build-artifacts source: dist/**/* target: builds/<+pipeline.sequenceId>

GitHub Actions:

  • step: name: Setup Node type: Action spec: uses: actions/setup-node@v3 with: node-version: "18" cache: npm

Artifact Management

Upload build outputs to cloud storage:

  • S3: Type S3Upload , spec: bucket , sourcePath , target

  • GCS: Type GCSUpload , spec: bucket , sourcePath , target

CI Expressions

Expression Description

<+codebase.branch>

Git branch name

<+codebase.commitSha>

Full commit SHA

<+codebase.shortCommitSha>

Short SHA (7 chars)

<+codebase.commitMessage>

Commit message

<+pipeline.sequenceId>

Build number

<+pipeline.executionId>

Execution UUID

<+secrets.getValue("key")>

Secret value

Triggers

Push Trigger:

trigger: name: Build on Push pipelineIdentifier: build_pipeline source: type: Webhook spec: type: Push connectorRef: harness_code repoName: my-service payloadConditions: - key: targetBranch operator: In value: [main, develop]

Pull Request & Tag: Use type: PullRequest or type: Tag with actions or tagCondition .

Troubleshooting

Issue Solution

Build timeout Increase timeout, optimize steps

Cache miss Verify checksum file path

Image pull failed Check connector credentials

TI not working Verify language/buildTool config

Out of memory Increase step memory limits

Debug:

  • step: name: Debug type: Run spec: command: | echo "Branch: <+codebase.branch>" echo "Build: <+pipeline.sequenceId>" env | sort df -h

Related Documentation

  • Harness CI Docs

  • Test Intelligence

  • Caching

  • Build Infrastructure

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vision-multimodal

No summary provided by upstream source.

Repository SourceNeeds Review
General

design-system

No summary provided by upstream source.

Repository SourceNeeds Review
General

kanban

No summary provided by upstream source.

Repository SourceNeeds Review