#------------------------------------------------------------------------------
# Convenience aliases for testing.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Usage:
# cd YourSDPWorkspaceRoot/dev/test
# . ./env.sh
#------------------------------------------------------------------------------
declare _SDP_TEST_HOME=$PWD
#------------------------------------------------------------------------------
# Sync Latest SDP Workspace, and optionally unshelve some changelists.
#
# This assumes a test SDP workspace has a .p4config file containing a setting
# like:
# P4CLIENT=tom_tyler.P4MBPro3.test_sdp_dev
#
# It also assumes P4PORT and P4USER context settings are already defined
# appropriately for accessing the Public Depot, perhaps with a higher level
# .p4config file.
#
# Usage:
# sl
# sl 25101 25302
#
# Each call reverts any opened files in the workspace, syncs to the tip, and
# unshelves any listed shelved changelists. She shelves are expected to be
# in the same workspace as the workspace defined by $_SDP_TEST_HOME, typically
# 'dev' or 'main'.#
#
# ***WARNING***: This worfklow assumes you're not doing any actual editing or
# work in the test workspace, but only using it to get files into the Docker
# test suite for testing there.
#------------------------------------------------------------------------------
function sl () {
declare p4configFile="$_SDP_TEST_HOME/sdp/.p4config"
declare changelistsToUnshelve=
declare cmd=
declare allOK=1
[[ $# -ge 0 ]] && changelistsToUnshelve="$*"
user=$(p4 set -q P4USER)
if [[ -r "$p4configFile" ]]; then
ws=$(grep P4CLIENT= sdp/.p4config)
ws=${ws#*=}
if [[ -n "$ws" ]]; then
cmd="p4 -c $ws -s revert //$ws/..."
echo "Running: $cmd"
if ! $cmd; then
echo -e "\\nError: Revert failed, not syncing.\\n"
return 1
fi
cmd="p4 -c $ws -s sync -q --parallel=threads=8"
echo "Running: $cmd"
if ! $cmd; then
echo -e "\\nError: Sync failed, not unshelving.\\n"
return 1
fi
if [[ -n "$changelistsToUnshelve" ]]; then
for cl in $changelistsToUnshelve; do
cmd="p4 -c $ws unshelve -s $cl"
echo "Running: $cmd"
if ! $cmd; then
echo -e "\\nError: unshelve failed for $cl, skipping it.\\n"
allOK=0
fi
done
if [[ "$allOK" -eq 1 ]]; then
echo -e "\\nUnshelving was successful for changes $changelistsToUnshelve."
else
echo -e "\\nError: unshelve failed for one or more changelists.\\n"
allOK=0
fi
else
echo "No shelved changelists specified to unshelve."
fi
else
echo -e "\\nError: Could not determine P4CLIENT value from $p4configFile. Not syncing."
return 1
fi
else
echo -e "\\nError: Missing $p4configFile. To use the 'sl' (sync latest)\\nfunction, create a file $p4configFile containing:\\n\\nP4CLIENT=<your_sdp_test_workspace>\\n\\nSee: $p4configFile/$README.md\\n"
return 1
fi
}
# Run Docker Tests for CentOS 6
alias dr6='podman run --rm -e TESTOS=centos6 -v $PWD/sdp:/sdp perforce/centos6-sdp /p4/docker_entry.sh'
# Docker Interactive Session for CentOS 6
alias di6='podman run --rm -e TESTOS=cenots6 -v $PWD/sdp:/sdp -it perforce/centos6-sdp /bin/bash'
# Run Docker Tests for CentOS 7
alias dr7='podman run --rm -e TESTOS=centos7 -v $PWD/sdp:/sdp perforce/centos7-sdp /p4/docker_entry.sh'
# Docker Interactive Session for CentOS 7
alias di7='podman run --rm -e TESTOS=centos7 -v $PWD/sdp:/sdp -it perforce/centos7-sdp /bin/bash'
# Run Docker Tests for Rocky Linux 8
alias dr8='podman run --rm -e TESTOS=rocky8 -v $PWD/sdp:/sdp perforce/rocky8-sdp /p4/docker_entry.sh'
# Run Docker Tests for Rocky Linux 9
alias dr9='podman run --rm -e TESTOS=rocky9 -v $PWD/sdp:/sdp perforce/rocky9-sdp /p4/docker_entry.sh'
# Docker Interactive Session for Rocky Linux 8
alias dir8='podman run --rm -e TESTOS=rocky8 -v $PWD/sdp:/sdp -it perforce/rocky8-sdp /bin/bash'
# Docker Interactive Session for Rocky Linux 9
alias di9='podman run --rm -e TESTOS=rocky9 -v $PWD/sdp:/sdp -it perforce/rocky9-sdp /bin/bash'
# Run Docker Tests for Ubuntu 20
alias dru20='podman run --rm -e TESTOS=ubuntu20 -v $PWD/sdp:/sdp perforce/ubuntu20-sdp /p4/docker_entry.sh'
# Run Docker Tests for Ubuntu 22
alias dru22='podman run --rm -e TESTOS=ubuntu22 -v $PWD/sdp:/sdp perforce/ubuntu22-sdp /p4/docker_entry.sh'
alias dru='podman run --rm -e TESTOS=ubuntu22 -v $PWD/sdp:/sdp perforce/ubuntu22-sdp /p4/docker_entry.sh'
# Docker Interactive Session for Ubuntu 20
alias diu20='podman run --rm -e TESTOS=ubuntu20 -v $PWD/sdp:/sdp -it perforce/ubuntu20-sdp /bin/bash'
# Docker Interactive Session for Ubuntu 22
alias diu22='podman run --rm -e TESTOS=ubuntu22 -v $PWD/sdp:/sdp -it perforce/ubuntu22-sdp /bin/bash'
alias diu='podman run --rm -e TESTOS=ubuntu22 -v $PWD/sdp:/sdp -it perforce/ubuntu22-sdp /bin/bash'
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #5 | 30388 | C. Thomas Tyler |
Released SDP 2024.1.30385 (2024/06/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #4 | 28858 | C. Thomas Tyler |
Released SDP 2022.1.28855 (2022/05/27). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #3 | 27761 | C. Thomas Tyler |
Released SDP 2020.1.27759 (2021/05/07). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #2 | 27331 | C. Thomas Tyler |
Released SDP 2020.1.27325 (2021/01/29). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #1 | 25483 | C. Thomas Tyler |
Released SDP 2019.1.25480 (2019/04/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| //guest/perforce_software/sdp/dev/test/env.sh | |||||
| #2 | 25474 | C. Thomas Tyler |
Added support for an unshelving workflow with the 'sl' function in the test SDP workspace on which the Docker test suite runs. |
||
| #1 | 25434 | C. Thomas Tyler |
Added convenience aliases and function to provide shorthands for Docker test environment workflow. |
||