Trying out Python Package Deployment Pipeline

Hello all, Excited to be part of the Harness Community
I was trying out harness last weekend and I created a simple python project and pushed to git.
I have a basic Makefile in the root of the project which does install dependencies, lint check, test check, and then publish to nexus.
I was trying to build a flow where any push to the repo’s master branch would trigger a pipeline that initializes a python3.6 environment (can use docker for the same), does lint check, test check and on success push to private nexus. Kind of mimicking Jenkins workflow. However, I was having problems setting things up. Can someone guide me or point me in the right direction on how I would do that?

I got stuck at creating an environment to run make commands. I guess I am still unsure about setting up workflows and pipelines correctly

1 Like

@varunnandu welcome to the Community and thanks for the Slack Post also.

When dipping your toes into Harness for the first time, like any tool getting around some of the taxonomy is part of the learning curve.

In Harness Terms, Environment is a target where you deploy to.

The CD Abstraction Model [e.g Environment, Service, etc] will
outline these concepts.

The build portion e.g the Makefile might be better run on a CI tool like Jenkins. The Harness
the platform can look out for a new artifact let’s say in Nexus as a Trigger.

How are you orchestrating those items now? Are all of these steps contained in a Jenkinsfile? Perhaps can share a version of that file?



Currently I do not have an Orchestration tool. I thought Harness had something built in for the same.

I was under the assumption that Harness would remove the dependency on Jenkins/Codebuild
This is the link to the project.

I wanted somewhere in the orchestration workflow setup .pyircfile to abstraact away my credentials and registry info

Harness currently more focuses on the orchestration of the confidence building steps after the artifact creation which all leads to the deploy/release strategy.

Harness does have the ability to call Jenkins as part of a Harness Pipeline.

Build and Deploy:

Linting/Linters are more code coverage steps IMO and might be ran before a check-in [commit] or even as part of the build stage depending when you want to provide that feedback to the engineer.

Where are you deploying the artifacts to? Seems like you have a Docker Image at the end are you going towards Kubernetes [Harness can deploy to K8s just given a image name] or using another tool like Amazon ECS? Or for the bold just Docker Run?