22set -eo pipefail
33
44# Allow sharing of perforce client workspaces for the same stream between pipelines
5- if [[ " ${BUILDKITE_PLUGIN_PERFORCE_SHARE_WORKSPACE} " == true ]] ; then
6- echo " Workspace sharing enabled"
5+ if [[ " ${BUILDKITE_PLUGIN_PERFORCE_SHARE_WORKSPACE} " == true ]]; then
6+ echo " Workspace sharing enabled"
77
8- STREAM=" ${BUILDKITE_PLUGIN_PERFORCE_STREAM} "
9- if [[ -z " ${STREAM} " ]] ; then
10- echo " Error: You must use stream workspaces to enable shared workspaces" >&2
11- exit 1
12- fi
13- if [[ " ${BUILDKITE_AGENT_META_DATA_AGENT_COUNT} " -gt 1 ]] ; then
14- echo " Error: You cannot share stream workspaces when running more than one agent" >&2
15- exit 1
16- fi
17- if [[ " ${BUILDKITE_PLUGIN_PERFORCE_STREAM_SWITCHING} " == true ]] ; then
18- echo " Stream switching enabled"
19- # Sanitize '//depot/stream-name' to 'depot'
20- SANITIZED_STREAM=$( echo $STREAM | python -c " import sys; print(sys.stdin.read().split('/')[2]);" )
21- else # Create a directory per-stream
22- # Sanitize '//depot/stream-name' to '__depot_stream-name'
23- SANITIZED_STREAM=$( echo $STREAM | python -c " import sys; print(sys.stdin.read().replace('/', '_'));" )
24- fi
25- # Instead of builds/<agent_number>/<pipeline>, checkout to builds/<stream_name>
26- PERFORCE_CHECKOUT_PATH=" ${BUILDKITE_BUILD_CHECKOUT_PATH} /../../${SANITIZED_STREAM} "
27- export BUILDKITE_BUILD_CHECKOUT_PATH=" ${PERFORCE_CHECKOUT_PATH} "
28- echo " Changed BUILDKITE_BUILD_CHECKOUT_PATH to ${PERFORCE_CHECKOUT_PATH} "
29- fi
8+ STREAM=" ${BUILDKITE_PLUGIN_PERFORCE_STREAM} "
9+ if [[ -z " ${STREAM} " ]]; then
10+ echo " Error: You must use stream workspaces to enable shared workspaces" >&2
11+ exit 1
12+ fi
13+ if [[ " ${BUILDKITE_AGENT_META_DATA_AGENT_COUNT} " -gt 1 ]]; then
14+ echo " Error: You cannot share stream workspaces when running more than one agent" >&2
15+ exit 1
16+ fi
17+ if [[ " ${BUILDKITE_PLUGIN_PERFORCE_STREAM_SWITCHING} " == true ]]; then
18+ echo " Stream switching enabled"
19+ # Sanitize '//depot/stream-name' to 'depot'
20+ SANITIZED_STREAM=$( echo $STREAM | python -c " import sys; print(sys.stdin.read().split('/')[2]);" )
21+ else # Create a directory per-stream
22+ # Sanitize '//depot/stream-name' to '__depot_stream-name'
23+ SANITIZED_STREAM=$( echo $STREAM | python -c " import sys; print(sys.stdin.read().replace('/', '_'));" )
24+ fi
25+ # Instead of builds/<agent_number>/<pipeline>, checkout to builds/<stream_name>
26+ PERFORCE_CHECKOUT_PATH=" ${BUILDKITE_BUILD_CHECKOUT_PATH} /../../${SANITIZED_STREAM} "
27+ export BUILDKITE_BUILD_CHECKOUT_PATH=" ${PERFORCE_CHECKOUT_PATH} "
28+ echo " Changed BUILDKITE_BUILD_CHECKOUT_PATH to ${PERFORCE_CHECKOUT_PATH} "
29+ fi
0 commit comments