Skip to content

Commit 8e039f5

Browse files
committed
Use apt-get and noninteractive. Check APT locks first
1 parent 8872fc9 commit 8e039f5

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

.github/scripts/setup-test-server-remote.sh

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,40 @@ title () { echo; echo $1; }
2525

2626
title "- Setting Up Remote Benchmark Testing on ${HOST} -"
2727

28+
title "-- Waiting for APT to be Free --"
29+
BEGIN_SECS=$(date +%s)
30+
export DEBIAN_FRONTEND=noninteractive
31+
STATUS=0
32+
for i in {1..60}; do
33+
if ! sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 && ! sudo fuser /var/lib/apt/lists/lock >/dev/null 2>&1 \
34+
&& ! sudo fuser /var/lib/apt/lists/lock-frontend >/dev/null 2>&1; then
35+
STATUS=1
36+
break
37+
fi
38+
sleep 10
39+
done
40+
41+
DURATION=$(($(date +%s) - ${BEGIN_SECS}))
42+
if [[ $STATUS -eq 0 ]]; then
43+
echo "Failed to gain APT lock ${ACTOR} after ${DURATION} seconds"
44+
exit 1
45+
fi
46+
2847
title "-- Adding OS Applications --"
2948
UPDATED=$(sudo update-alternatives --list java | grep -i temurin; echo $?)
3049
if [[ ${UPDATED} != 0 ]]; then
3150
title "-- Adding Adoptium to APT registry --"
32-
sudo apt -y install wget apt-transport-https gpg
51+
sudo apt-get -y install wget apt-transport-https gpg
3352
sudo wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
3453
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
35-
sudo apt -y update
54+
sudo apt-get -y update
3655
fi
3756

3857
title "-- Installing JVMs --"
39-
sudo apt -y install temurin-17-jdk
58+
sudo apt-get -y install temurin-17-jdk
4059

4160
title "-- Installing Maven --"
42-
sudo apt -y install maven
61+
sudo apt-get -y install maven
4362

4463
title "-- Installing Docker --"
4564
command_exists() {
@@ -48,18 +67,17 @@ command_exists() {
4867
if command_exists docker; then
4968
echo "Docker already installed... skipping"
5069
else
51-
sudo apt -y update
52-
sudo apt -y install ca-certificates curl
70+
sudo apt-get -y update
71+
sudo apt-get -y install ca-certificates curl
5372
sudo install -m 0755 -d /etc/apt/keyrings
5473
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
5574
sudo chmod a+r /etc/apt/keyrings/docker.asc
5675

5776
echo \
5877
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
59-
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
60-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
61-
sudo apt -y update
62-
sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
78+
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
79+
sudo apt-get -y update
80+
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6381
sudo usermod -aG docker ${USER}
6482
sudo systemctl restart docker
6583
exec sg docker bash

0 commit comments

Comments
 (0)