This guide provides a solution to the issues encountered when trying to perform test splitting on macOS Xcode images in CircleCI due to the limitations of the system-installed Bash 3's globbing functionality. We'll guide you through installing Bash 5 and setting it as the shell in the job's step to overcome these limitations.
Understanding the Issue
When using system-installed Bash 3 on macOS Xcode images in CircleCI, you may encounter issues with test splitting. This is due to a limitation with globbing test results in Bash 3. The issue does not present in Bash 5.
Steps to Install Bash 5 and Set it as the Shell
Follow the steps below to install Bash 5 and set it as the shell in the job's step:
Install Bash 5 using the brew install command:
brew install bash
Set Bash 5 as the shell in the job's step using the shell command. Here is an example of how to include it in your CircleCI configuration file:
version: 2.1 jobs: build: macos: xcode: "12.5.1" steps: - run: name: Run commands using Bash 5 shell: /opt/homebrew/bin/bash --login -eo pipefail command: | echo "Running commands with Bash 5"
You have now successfully installed Bash 5 and set it as the shell in the job's step on CircleCI using macOS Xcode images. This should help overcome the limitations of the system-installed Bash 3's globbing functionality and allow for successful test splitting.
For more information on working with Bash and CircleCI, you may find the following resources helpful: