f"{input_one} {input_two}"
    print(combined_str)@pipeline
def my_pipeline():
    output_step_one = step_1()
    step_2(input_one="hello", input_two=output_step_one)

if __name__ == "__main__":
    my_pipeline()Saving that to a run.py file and running it gives us:

Example Command Output

```text

$ python run.py

Reusing registered pipeline simple_pipeline (version: 1).

Building Docker image(s) for pipeline simple_pipeline.

Building Docker image gcr.io/zenml-core/zenml:simple_pipeline-orchestrator.

Including integration requirements: gcsfs, google-cloud-aiplatform>=1.11.0, google-cloud-build>=3.11.0, google-cloud-container>=2.21.0, google-cloud-functions>=1.8.3, google-cloud-scheduler>=2.7.3, google-cloud-secret-manager, google-cloud-storage>=2.9.0, kfp==1.8.16, kubernetes==18.20.0, shapely<2.0

No .dockerignore found, including all files inside build context.

Step 1/8 : FROM zenmldocker/zenml:0.39.1-py3.8

Step 2/8 : WORKDIR /app

Step 3/8 : COPY .zenml_integration_requirements .

Step 4/8 : RUN pip install --default-timeout=60 --no-cache-dir  -r .zenml_integration_requirements

Step 5/8 : ENV ZENML_ENABLE_REPO_INIT_WARNINGS=False

Step 6/8 : ENV ZENML_CONFIG_PATH=/app/.zenconfig

Step 7/8 : COPY . .

Step 8/8 : RUN chmod -R a+rw .

Pushing Docker image gcr.io/zenml-core/zenml:simple_pipeline-orchestrator.

Finished pushing Docker image.

Finished building Docker image(s).

Running pipeline simple_pipeline on stack gcp-demo (caching disabled)

Waiting for Kubernetes orchestrator pod...

Kubernetes orchestrator pod started.

Waiting for pod of step step_1 to start...

Step step_1 has started.

Step step_1 has finished in 1.357s.

Pod of step step_1 completed.

Waiting for pod of step simple_step_two to start...

Step step_2 has started.

Hello World!

Step step_2 has finished in 3.136s.

Pod of step step_2 completed.

Orchestration pod completed.

Dashboard URL: http://34.148.132.191/workspaces/default/pipelines/cec118d1-d90a-44ec-8bd7-d978f726b7aa/runs

```