|
2 | 2 | set -eo pipefail |
3 | 3 |
|
4 | 4 | # 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" |
7 | 7 |
|
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}" |
| 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 | 29 | fi |
0 commit comments