shell executor bugs out when loginshell != bash
Summary
Starting a build from gitlab will fail immediately, if the runner uses ssh and a user with a different shell than bash
Steps to reproduce
Setup a gitlab runner with ssh executor,
run under a user which has /bin/sh
as login shell.
(and /bin/sh is not bash)
usermod -s /bin/sh build
.gitlab-ci.yml
```yaml
firmware:
stage: build
script:
- '#!/bin/sh -e'
- echo hello
Actual behavior
Build fails before a single line of the script is executed
Expected behavior
Output from the script
Relevant logs and/or screenshots
job log
Running with gitlab-runner 11.9.2 (fa86510e)
on xyz aaaaaa
Using SSH executor...
sh: 1: $bash: not found
sh: 1: $bash: not found
ERROR: Job failed: Process exited with: 127. Reason was: ()
Environment description
Local gitlab instance running from docker.
config.toml contents
concurrent = 1
check_interval = 0
[[runners]]
name = "desbuild"
url = "http://10.99.11.2/"
token = "xyz"
executor = "ssh"
[runners.ssh]
user = "build"
host = "10.99.11.1"
identity_file = "/home/build/.ssh/id_rsa"
[runners.cache]
Used GitLab Runner version
Version: 11.9.2
Git revision: fa86510e
Git branch:
GO version: go1.8.7
Built: 2019-04-09T20:00:28+0000
OS/Arch: linux/amd64
Edited by 🤖 GitLab Bot 🤖