#!/bin/bash
#------------------------------------------------------------------------------
set -u
declare OpMode=Standard
declare BuildCmd=
declare OSList=
declare OS=
declare DockerDir=
declare DockerfileBase=
declare DockerfileSDP=
declare ScriptDir=
declare WorkDir=${HOME}/podman_tmp
declare -i ErrorCount=0
function msg () { echo -e "$*"; }
function errmsg () { msg "\\nError: ${1:-Unknown Error}\\n"; ErrorCount+=1; }
function bail () { errmsg "${1:-Unknown Error}"; exit "$ErrorCount"; }
#------------------------------------------------------------------------------
# Build the Docker containers for the SDP - now using podman instead of docker
# Usage:
# build_docker_image.sh [<OS>] [-clean]
# Usage Examples from from the root of the workspace (assuming mapping):
# //guest/perforce_software/sdp/dev/... //YourID.test_sdp_dev.sdp/sdp/...
#
# sdp/test/build_docker_image.sh
# sdp/test/build_docker_image.sh ubuntu20
# sdp/test/build_docker_image.sh centos7 ubuntu20
# sdp/test/build_docker_image.sh all
# sdp/test/build_docker_image.sh ALL -clean
#
# Goes together with run_docker_tests.sh
# This is provided as a useful tool for testing!
#
# Note that this file is expecting to be mapped into the root of the workspace
# and with the sdp directory in the same root.
# So workspace view should look something like:
# View:
# //guest/perforce_software/sdp/main/... //myws.sdp/sdp/...
# This file should be in <workspace-root>/sdp/test/
# We calculate dir relative to directory of script
ScriptDir="${0%/*}"
# shellcheck disable=SC2164
root_dir="$(cd "$ScriptDir/../.."; pwd -P)"
for arg in $(echo "$@" | tr ',' ' '); do
case "$arg" in
(-clean) OpMode=Clean;;
(all) OSList="rocky9 ubuntu22";;
(ALL) OSList="centos7 rocky8 rocky9 ubuntu20 ubuntu22";;
(ubuntu20) OSList+="ubuntu20";;
(ubuntu22) OSList+="ubuntu22";;
(centos7) OSList+="centos7";;
(rocky8) OSList+="rocky8";;
(rocky9) OSList+="rocky9";;
(-*)
echo "Warning: Unknown option [$arg]."
;;
(*)
echo "Warning: Unknown OS [$arg]."
OSList+="$arg"
;;
esac
done
# Default is currently Rocky 9 only.
[[ -z "$OSList" ]] && OSList="rocky9"
mkdir -p "$WorkDir" || bail "Could not do: mkdir -p \"$WorkDir\""
export TMPDIR="$WorkDir"
echo Building SDP docker containers
for OS in $OSList; do
DockerDir="$root_dir/sdp/test/docker"
Dockerfile="${DockerDir}/Dockerfile.${OS}"
# Build the base Docker for the OS, and then the SDP variant on top
BuildCmd="podman build --rm=true -t=perforce/${OS} -f ${Dockerfile} ${DockerDir}"
[[ "$OpMode" == Clean ]] && BuildCmd=${BuildCmd/--rm=true/--rm=true --no-cache}
msg "Running: $BuildCmd"
$BuildCmd || errmsg "Error building SDP container."
done
if [[ "$ErrorCount" -eq 0 ]]; then
msg "\\nAll processing completed OK."
else
msg "\\nProcessing completed, but with $ErrorCount errors."
fi
exit "$ErrorCount"
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #7 | 30915 | C. Thomas Tyler |
Released SDP 2024.1.30913 (2024/11/20). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #6 | 30388 | C. Thomas Tyler |
Released SDP 2024.1.30385 (2024/06/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #5 | 30297 | C. Thomas Tyler |
Released SDP 2023.2.30295 (2024/05/08). 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 | 28240 | C. Thomas Tyler |
Released SDP 2021.1.28238 (2021/11/12). 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 | 25245 | C. Thomas Tyler |
Released SDP 2019.1.25238 (2019/03/02). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| //guest/perforce_software/sdp/dev/test/build_docker_image.sh | |||||
| #2 | 25153 | Robert Cowham |
Change scripts to be able to be run from workspace root sdp/test/run_docker_tests.sh So no longer requires funny mapping in workspace view (see README.md for view) |
||
| #1 | 25150 | Robert Cowham | Utiltiy script to help build docker images | ||
| //guest/robert_cowham/perforce/sdp/test/build_docker_image.sh | |||||
| #5 | 25116 | Robert Cowham | Docker compose tests starting to get there... | ||
| #4 | 23433 | Robert Cowham | Got it working with basic ssh stuff if sshd run manually on a box | ||
| #3 | 22485 | Robert Cowham |
Update python to 3.5 Refactor tests to simplify workspace (no mapping into root), and to allow easy setup |
||
| #2 | 20827 | Robert Cowham | Default to centos6 for nowç | ||
| #1 | 20813 | Robert Cowham | Using docker-compose | ||