Shell used for commands?

Is it possible to use /bin/bash for all commands instead of /bin/sh ?

this is not possible, but you can put your build commands in a shell script and execute that with bash:

pipeline:
  build:
    image: ubuntu
    commands:
      - /bin/bash build.sh

The reason we use /bin/sh is because it is, per the unix standard, available in every single docker image, where /bin/bash is generally not available and therefore not an appropriate default.

Forgot to mention we are exposing the internals of the yaml compiler, so one could use a plugin to override the default behavior and use bin/bash. Tracking https://github.com/drone/drone/issues/1863

As a workaround one could do:

    commands:
      - >
        bash -s <<SCRIPT
          env
          ls -lha

        SCRIPT

(that empty line before SCRIPT is a MUST)