Just posting this for others, if you hit pending and are trying to use runners make sure type: is set in your yaml files, if its blank it will be stuck as pending.
Seems this should allow a wild card or something or some way of saying i dont care which pipeline, but by default this is used as a selector so if using digitalocean set type to digitalocean or docker set type: docker etc
this may help as this is an often reported error.
The syntax and behavior are different across pipeline types which is why a type must be specified. An
exec pipeline will not work with a
docker pipeline, and vice-versa. If no type is provided, it defaults to type
docker for backward compatibility with older versions of Drone.
yeah i get that, but it means you cant just move your projects with out changing the type.
annoying if you have lots of projects, like a say an override type option would be nice.
anyway hopefully this helps someone else, as its very hard to diagnose.
this is correct, and is by design. We do not want to abstract away runtime behavior of different execution environments. You design your pipeline for the target execution environment. If you want to change the target execution environment you need to make updates.
the last thing we want are pipelines intended to run in Docker (isolated) being scheduled to run on the Exec runner (not-isolated) which has security implications, concurrency implications, and could mutate the host in undesirable ways. We also want to avoid situations where a Docker pipeline (all dependencies included in images) fails to run on the Exec runner because the host is missing dependencies. Or Docker pipelines fail on Kubernetes because Kubernetes networking uses localhost instead of hostnames. There is no free lunch here. We change the behavior and we just introduce a whole new class of support issues that will confuse users.
I agree that this is difficult to debug and we need a solution, but we will have to agree to disagree on what that solution should be.