tekton-integration
tekton-integration copied to clipboard
Build fails if no process types defined ("ERROR: failed to export: determining entrypoint: tried to set web to default but it doesn't exist")
The CNB spec permits there being no process types in an image (due to no buildpacks having set a process type): https://github.com/buildpacks/spec/blob/main/buildpack.md#launchtoml-toml
Accordingly, the Pack CLI also permits this. eg:
$ git clone https://github.com/heroku/python-getting-started && cd $_
$ rm Procfile # emulate the user not having defined any process types
$ pack build --builder heroku/heroku:22 python-test
...
===> EXPORTING
Adding layer 'heroku/python:dependencies'
Adding layer 'heroku/python:python'
Adding layer 'buildpacksio/lifecycle:launch.sbom'
Adding 1/1 app layer(s)
Adding layer 'buildpacksio/lifecycle:launcher'
Adding layer 'buildpacksio/lifecycle:config'
Adding label 'io.buildpacks.lifecycle.metadata'
Adding label 'io.buildpacks.build.metadata'
Adding label 'io.buildpacks.project.metadata'
no default process type
Saving python-test...
*** Images (401af57dbb7e):
python-test
Adding cache layer 'heroku/python:pip-cache'
Adding cache layer 'heroku/python:python'
Successfully built image python-test
However, if Tekton tries to perform a build where no process types were defined, it errors:
===> EXPORTING
Adding layer 'heroku/python:dependencies'
Adding layer 'heroku/python:python'
Adding layer 'buildpacksio/lifecycle:launch.sbom'
Adding 1/1 app layer(s)
Adding layer 'buildpacksio/lifecycle:launcher'
Adding layer 'buildpacksio/lifecycle:config'
Adding label 'io.buildpacks.lifecycle.metadata'
Adding label 'io.buildpacks.build.metadata'
Adding label 'io.buildpacks.project.metadata'
ERROR: failed to export: determining entrypoint: tried to set web to default but it doesn't exist
This was reported in: https://github.com/heroku/buildpacks-python/issues/196
It seems the Tekton integration is not currently spec compliant.