@@ -9,7 +9,10 @@ RUN_ONE=${6:-"false"} # false or script name
9
9
10
10
set -e
11
11
12
- runScript ()
12
+ # Test runner. If RUN_ONE is set, then the script will only execute when the script argument martches.
13
+ # This script will be fired twice. Once with "USE_DEFAULTS" true, once false to check both behaviors
14
+ # run_script <script name minus OS> [non-default test arguments] [arugments to always pass]
15
+ run_script ()
13
16
{
14
17
local script_name=$1
15
18
if [ " ${RUN_ONE} " != " false" ] && [ " ${script_name} " != " common" ] && [ " ${script_name} " != " ${RUN_ONE} " ]; then
@@ -41,6 +44,7 @@ runScript()
41
44
42
45
# Determine distro scripts to use
43
46
. /etc/os-release
47
+ architecture=" $( uname -m) "
44
48
DISTRO=" ${ID_LIKE} "
45
49
if [ -z " ${DISTRO} " ]; then
46
50
DISTRO=" ${ID} "
@@ -60,47 +64,54 @@ cat << EOF
60
64
61
65
EOF
62
66
67
+ # Add stub entrypoint scripts in the event RUN_ONE is set and not all of these would be executed
63
68
tee /usr/local/share/docker-init.sh /usr/local/share/ssh-init.sh > /usr/local/share/desktop-init.sh << 'EOF '
64
69
#!/bin/bash
65
70
"$@"
66
71
EOF
67
72
chmod +x /usr/local/share/docker-init.sh /usr/local/share/ssh-init.sh /usr/local/share/desktop-init.sh
73
+
74
+ # Run the common script unless disabled
68
75
if [ " ${RUN_COMMON_SCRIPT} " = " true" ]; then
69
- runScript common " true ${USERNAME} 1000 1000 ${UPGRADE_PACKAGES} "
76
+ run_script common " true ${USERNAME} 1000 1000 ${UPGRADE_PACKAGES} "
70
77
chown 1000 /usr/local/share/docker-init.sh /usr/local/share/ssh-init.sh /usr/local/share/desktop-init.sh
71
78
fi
72
79
73
- architecture= " $( uname -m ) "
80
+ # Debian/Ubuntu specific tests
74
81
if [ " ${DISTRO} " = " debian" ]; then
75
- runScript awscli
76
- runScript azcli
77
- runScript fish " false ${USERNAME} "
78
- runScript git-from-src " latest true"
79
- runScript git-lfs " " " 2.13.3"
80
- runScript github
81
- runScript go " 1.14 /opt/go /go ${USERNAME} false"
82
- runScript gradle " 4.4 /usr/local/sdkman1 ${USERNAME} false"
83
- runScript kubectl-helm " latest latest latest"
84
- runScript maven " 3.6.3 /usr/local/sdkman3 ${USERNAME} false"
85
- runScript node " /usr/local/share/nvm 10 ${USERNAME} "
86
- runScript python " 3.4.10 /opt/python /opt/python-tools ${USERNAME} false false"
87
- runScript ruby " ${USERNAME} false" " 2.7.3"
88
- runScript rust " /opt/rust/cargo /opt/rust/rustup ${USERNAME} false"
89
- runScript terraform " 0.15.0 0.12.1"
90
- runScript sshd " 2223 ${USERNAME} true random"
91
- runScript desktop-lite " ${USERNAME} changeme false"
92
- runScript docker-in-docker " false ${USERNAME} false 20.10 v2"
93
- runScript powershell
94
- runScript fish
82
+ run_script awscli
83
+ run_script azcli
84
+ run_script fish " false ${USERNAME} "
85
+ run_script git-from-src " latest true"
86
+ run_script git-lfs " " " 2.13.3"
87
+ run_script github
88
+ run_script go " 1.17 /opt/go /go ${USERNAME} false"
89
+ run_script gradle " 4.4 /usr/local/sdkman1 ${USERNAME} false"
90
+ run_script kubectl-helm " latest latest latest"
91
+ run_script maven " 3.6.3 /usr/local/sdkman3 ${USERNAME} false"
92
+ run_script node " /usr/local/share/nvm 14 ${USERNAME} "
93
+ run_script python " 3.4.10 /opt/python /opt/python-tools ${USERNAME} false false"
94
+ run_script ruby " ${USERNAME} false" " 2.7.3"
95
+ run_script rust " /opt/rust/cargo /opt/rust/rustup ${USERNAME} false"
96
+ run_script terraform " 0.15.0 0.12.1"
97
+ run_script sshd " 2223 ${USERNAME} true random"
98
+ run_script desktop-lite " ${USERNAME} changeme false"
99
+ docker_version=" 20.10"
100
+ if [ " ${VERSION_CODENAME} " = " stretch" ]; then
101
+ docker_version=" 19.03"
102
+ fi
103
+ run_script docker-in-docker " false ${USERNAME} false ${DOCKER_VERSION} v2"
104
+ run_script powershell
105
+ run_script fish
95
106
if [ " ${architecture} " = " amd64" ] || [ " ${architecture} " = " x86_64" ] || [ " ${architecture} " = " arm64" ] || [ " ${architecture} " = " aarch64" ]; then
96
- runScript java " 13.0.2.j9-adpt /usr/local/sdkman2 ${USERNAME} false"
107
+ run_script java " 13.0.2.j9-adpt /usr/local/sdkman2 ${USERNAME} false"
97
108
fi
98
109
if [ " ${architecture} " = " amd64" ] || [ " ${architecture} " = " x86_64" ]; then
99
- runScript homebrew " ${USERNAME} false true /home/${USERNAME} /linuxbrew"
110
+ run_script homebrew " ${USERNAME} false true /home/${USERNAME} /linuxbrew"
100
111
fi
101
- runScript dotnet " 3.1 true ${USERNAME} false /opt/dotnet dotnet"
112
+ run_script dotnet " 3.1 true ${USERNAME} false /opt/dotnet dotnet"
102
113
fi
103
114
104
115
if [ " ${DISTRO} " != " alpine" ]; then
105
- runScript docker " true /var/run/docker-host.sock /var/run/docker.sock ${USERNAME} "
116
+ run_script docker " true /var/run/docker-host.sock /var/run/docker.sock ${USERNAME} "
106
117
fi
0 commit comments