MetaCell / cloud-harness

Other
14 stars 5 forks source link

Feature/ch 87 #710

Closed aranega closed 11 months ago

aranega commented 12 months ago

Closes #697

Implemented solution:

The solution relies on the search of a specific pattern for flask-based backend. First, all the possible candidates containing a __main__.py file are searched (original behavior), then from those candidates, the content of each of them is scanned to look for the pattern we generate from cloud harness. This avoid the inclusion of __main.py as arguments in the case of there is some third-party libraries included for local testing purpose that also own a __main__.py (e.g: matplotlib).

How to test this PR:

To reproduce the original issue, in the folder of a workflow (e.g: myapp) that needs to be included in the skaffold configuration, simply add a folder hierachie like this: myfolder/mysubfolder/__main__.py. After a generation of the skaffold configuration, the entry in the skaffold.yml document for the overrides section should be:

overrides:
        apps:
          myapp:
            harness:
              deployment:
                args: [/usr/src/app/matplotlib/__main__.py]
                command: [python]

With the fix of this PR, the right path towards the __main__.py of the myapp workflow is now referenced.

Sanity checks:

Breaking changes (select one):

Possible deployment updates issues (select one):

Test coverage (select one):

Documentation (select one):

Nice to have (if relevant):

aranega commented 11 months ago

@filippomc Sure, no problem, I can try to look inside of the Dockerfile to identify the apps. I stayed with the content of the __main__.py as the original code looks for those. The modification should not be that complicated to do. I'll then update the PR asap.