<p>Previously, Screwdriver ran builds in <code>sh</code>. This caused problems for some users that have <code>bash</code> syntax in their steps. With version LAUNCHER v5.0.13 and above, users can run builds in the shell of their choice by setting the environment variable <code>USER_SHELL_BIN</code>. This value can also be the full path such as <code>/bin/bash</code>.</p>
<p><!-- more --></p>
<p>Example screwdriver.yaml (can be found under the <a href="https://github.com/screwdriver-cd-test/user-shell-example">screwdriver-cd-test/user-shell-example repo</a>):</p>
<pre><code>shared:
image: node:6
jobs:
# This job will fail because `source` is not available in sh
test-sh:
steps:
- fail: echo "echo hello" > /tmp/test && source /tmp/test
requires: [~pr, ~commit]
# This job will pass because `source` is available in bash
test-bash:
# Set USER_SHELL_BIN to bash to run the in bash
environment:
USER_SHELL_BIN: bash
steps:
- pass: echo "echo hello" > /tmp/test && source /tmp/test
requires: [~pr, ~commit]
</code></pre>
<h2>Compatibility List</h2>
<p>User-configurable shell support requires the following minimum versions of Screwdriver:</p>
<ul><li><a href="https://hub.docker.com/r/screwdrivercd/launcher">screwdrivercd/launcher</a>: v5.0.13</li>
</ul><h2>Contributors</h2>
<p>Thanks to the following people for making this feature possible:</p>
<ul><li><a href="https://github.com/d2lam">d2lam</a></li>
</ul><p>Screwdriver is an open-source build automation platform designed for Continuous Delivery. It is built (and used) by Yahoo. Don’t hesitate to reach out if you have questions or would like to contribute: <a href="http://docs.screwdriver.cd/about/support.">http://docs.screwdriver.cd/about/support.</a></p>