Software Delivery

Step 1 of 4

Build Software

Build software with Harness

Updated Sep 13, 2026 · Shawn Pearson

Goals

We'll setup a CI Pipeline with source code tests, build, and then push the artifact to a remote repository!

Steps

  1. In Harness:

    click: #
    Projects (blue bar) 1
    Your Project: {{project}} 2

    Pasted image

  2. If you see the Welcome screen with Get Started pane, kick it to the curb with the "X" top right.

    Pasted image

    Create the pipeline

  3. In your project:

    click: #
    Projects (blue bar) 1
    Your Project: {{project}} 2

    create pipeline

  4. In the box that pops up:

    click: # value
    Name 1 Python Build
    Inline 2
    Start 3

    Build Software

    Inline vs Remote

    We're using inline for this lab, but you can also use a remote repository like GitHub. This is useful for teams that want to keep their pipelines as code bundled up snuggly with application code. Cozy!

  5. then:

    click: #
    Add Stage 1
    build 2

    Pasted image

  6. then:

    click: # Value
    stage name 1 Build
    Clone Codebase 2
    Repository 3 Catalogapi-norefs
    Set Up Stage 4

    Pasted image

    Configure the infrastructure and tests

  7. On the infrastructure page:

    click: #
    Cloud 1
    Continue 2

    Pasted image

    Harness Cloud is the BESTEST cloud

    Something awesome happened right there. With zero configuration (well ok... ooooooone click!) you instantly configured an autoscaling build environment in the cloud that requires no management on your part and is dramatically less expensive than on-premise.
    Plus Harness is using the fastest bare-metal hardware in the Solar System. Seriously. Astronauts checked.

  8. On the execution page:

    click: #
    Add Step 1
    Add Step 2

    Pasted image

  9. In the Step Library:

    click: # Value
    (optional) 1 tests
    Test Intelligence 2

    Pasted image

  10. In the Run Tests pane: 1 name the test Run Tests with Intelligence, 2 choose python, 3 Pytest, 4 Click Additional Configuration to expand...

    ...5 copy and paste the install command below into the Pre-Command field...

    Shell
    pip install pytest & cd ./python-tests

    ... then: 6 click Apply Changes Pasted image

    Leverage a template for software build!

  11. Back in the Execution pane: 1 click Add Step, 2 click Use Template

    Pasted image

  12. In the Template Library: 1 click Compile Application, 2 click Use Template (far bottom right of screen)

    Pasted image

  13. In the template box: 1 name the template Compile, 2 click Apply Changes

    Pasted image

    Save the completed build artifact

  14. Back in the Execution pane: 1 click Add Step, 2 click Add Step

    Pasted image

  15. In the Step Library: 1 type docker in search box, 2 click Build and Push an image to Dockerhub

    Pasted image

  16. In the Build and Push pane:
    1 name the step Push to DockerHub
    2 select dockerhub for Docker Connector
    3 for Docker Respository paste:

    Shell
    nikpap/harness-workshop

    4 click +Add in Tags, then paste:

    Shell
    <+variable.username>-<+pipeline.sequenceId>

    5 Click Optional Configuration to expand
    6 For DockerFile paste:

    Shell
    /harness/frontend-app/harness-webapp/Dockerfile

    7 For Context paste:

    Shell
    /harness/frontend-app/harness-webapp

    8 Click Apply Changes. That was the biggest step in the workshop, you did it! ⭐️

    Pasted image

  17. In the top right of Pipeline Studio: 1 click Save, 2 click Run

    Pasted image

    Note

    You might have noticed an option to pick the branch before running the pipeline. We're using main for simplicity, but it's a great example of how this complete build pipeline could easily be reused for other branches (or repositories or services).