revert testing for now
This commit is contained in:
parent
07d774ae88
commit
9a4dd7786f
59
Dockerfile
59
Dockerfile
@ -10,7 +10,7 @@ RUN <<EOF cat >> /etc/pacman.conf
|
|||||||
[chaotic-aur]
|
[chaotic-aur]
|
||||||
Include = /etc/pacman.d/chaotic-mirrorlist
|
Include = /etc/pacman.d/chaotic-mirrorlist
|
||||||
EOF
|
EOF
|
||||||
RUN pacman -Syu base-devel android-sdk-cmdline-tools-latest flutter-bin jdk21-openjdk lxqt xorg-server libx11 libbsd lcov --noconfirm
|
RUN pacman -Syu base-devel android-sdk-cmdline-tools-latest flutter-bin jdk21-openjdk --noconfirm
|
||||||
|
|
||||||
RUN <<EOF cat >> /root/init.sh
|
RUN <<EOF cat >> /root/init.sh
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@ -19,7 +19,7 @@ source /etc/profile
|
|||||||
git config --global --add safe.directory /opt/flutter
|
git config --global --add safe.directory /opt/flutter
|
||||||
|
|
||||||
yes | sdkmanager --licenses
|
yes | sdkmanager --licenses
|
||||||
sdkmanager --install "build-tools;34.0.0" "build-tools;36.0.0" "cmake;3.22.1" "cmdline-tools;latest" "emulator" "ndk;27.0.12077973" "platform-tools" "platforms;android-34" "platforms;android-35" "sources;android-35" "system-images;android-35;google_apis_playstore;x86_64" "system-images;android-35-ext15;android-wear;x86_64"
|
sdkmanager --install "build-tools;36.0.0" "cmake;3.22.1" "cmdline-tools;latest" "ndk;27.0.12077973" "platforms;android-35" "sources;android-35"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN chmod +x /root/*.sh
|
RUN chmod +x /root/*.sh
|
||||||
@ -33,70 +33,21 @@ RUN chown -R user /opt/android-sdk
|
|||||||
RUN chown -R user /src
|
RUN chown -R user /src
|
||||||
RUN chown -R user /work
|
RUN chown -R user /work
|
||||||
|
|
||||||
RUN pacman -Syu xorg-server-xvfb --noconfirm
|
|
||||||
|
|
||||||
USER user
|
USER user
|
||||||
|
|
||||||
RUN echo no | /opt/android-sdk/cmdline-tools/latest/bin/avdmanager create avd --force --name 'Medium_Phone_API_35' --abi google_apis_playstore/x86_64 --package 'system-images;android-35;google_apis_playstore;x86_64'
|
|
||||||
RUN echo no | /opt/android-sdk/cmdline-tools/latest/bin/avdmanager create avd --force --name 'Wear_OS_Small_Round' --abi android-wear/x86_64 --package 'system-images;android-35-ext15;android-wear;x86_64'
|
|
||||||
|
|
||||||
RUN <<EOF cat >> /home/user/entrypoint.sh
|
RUN <<EOF cat >> /home/user/entrypoint.sh
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export PATH="/opt/android-sdk/platform-tools/:/opt/flutter/bin/:$PATH"
|
export PATH="/opt/flutter/bin/:$PATH"
|
||||||
source /etc/profile
|
source /etc/profile
|
||||||
|
|
||||||
flutter config --no-analytics --no-cli-animations >/dev/null
|
flutter config --no-analytics --no-cli-animations
|
||||||
|
|
||||||
cp -r /src/* /work
|
cp -r /src/* /work
|
||||||
cd /work/firka
|
cd /work/firka
|
||||||
flutter pub get
|
flutter pub get
|
||||||
|
flutter build apk --debug --verbose
|
||||||
xvfb-run /opt/android-sdk/emulator/emulator -avd Medium_Phone_API_35 >/dev/null &
|
|
||||||
xvfb-run /opt/android-sdk/emulator/emulator -avd Wear_OS_Small_Round >/dev/null &
|
|
||||||
|
|
||||||
max_retries=5
|
|
||||||
retry_count=0
|
|
||||||
|
|
||||||
tests_and_build() {
|
|
||||||
echo Waiting for emulators to boot up
|
|
||||||
while :
|
|
||||||
do
|
|
||||||
sleep 2
|
|
||||||
adb devices
|
|
||||||
(flutter devices | grep gphone64 >/dev/null) && (flutter devices | grep gwear >/dev/null) && break
|
|
||||||
done
|
|
||||||
|
|
||||||
phone=\$(flutter devices | grep gphone64 | awk '{ print \$7 }')
|
|
||||||
wear=\$(flutter devices | grep gwear | awk '{ print \$7 }')
|
|
||||||
|
|
||||||
echo phone: \$phone
|
|
||||||
echo wear: \$wear
|
|
||||||
|
|
||||||
echo Running tests...
|
|
||||||
|
|
||||||
flutter build apk --debug --verbose && \
|
|
||||||
flutter test integration_test/wear_* -d \$wear --coverage && \
|
|
||||||
mv coverage/lcov.info coverage/wear_lcov.info && \
|
|
||||||
flutter test integration_test/phone_* -d \$phone --coverage && \
|
|
||||||
mv coverage/lcov.info coverage/phone_lcov.info && \
|
|
||||||
flutter test test/ --coverage && \
|
|
||||||
genhtml coverage/*.info -o coverage/html
|
|
||||||
}
|
|
||||||
|
|
||||||
until tests_and_build; do
|
|
||||||
((retry_count++))
|
|
||||||
|
|
||||||
if [ \$retry_count -ge \$max_retries ]; then
|
|
||||||
echo "Command failed after \$max_retries attempts."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Retrying... (\$retry_count/\$max_retries)"
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
RUN chmod +x /home/user/*.sh
|
RUN chmod +x /home/user/*.sh
|
||||||
|
|
||||||
ENTRYPOINT [ "/home/user/entrypoint.sh" ]
|
ENTRYPOINT [ "/home/user/entrypoint.sh" ]
|
||||||
|
|
||||||
|
@ -7,5 +7,3 @@ services:
|
|||||||
- ./cache/gradle:/home/user/.gradle
|
- ./cache/gradle:/home/user/.gradle
|
||||||
- ./cache/pub-cache:/home/user/.pub-cache
|
- ./cache/pub-cache:/home/user/.pub-cache
|
||||||
- /home/jenkins/firka/secrets:/work/secrets
|
- /home/jenkins/firka/secrets:/work/secrets
|
||||||
devices:
|
|
||||||
- "/dev/kvm:/dev/kvm"
|
|
||||||
|
41
wrapper.py
41
wrapper.py
@ -1,41 +0,0 @@
|
|||||||
import subprocess
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import signal
|
|
||||||
|
|
||||||
retries = 0
|
|
||||||
total = 5
|
|
||||||
|
|
||||||
patterns = [
|
|
||||||
r"getSourceReport: $.*$ Service has disappeared",
|
|
||||||
r"xvfb-run: line .*: kill: \(.*\) - No such process",
|
|
||||||
r"cp: cannot create directory '/work/firka': Permission denied"
|
|
||||||
]
|
|
||||||
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
retries += 1
|
|
||||||
if retries != 1:
|
|
||||||
print(f"Attempt {retries}/{total}")
|
|
||||||
if retries >= 5:
|
|
||||||
print("Retry count exhausted")
|
|
||||||
exit(-1)
|
|
||||||
process = subprocess.Popen(["docker-compose", "up", "--build"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
|
|
||||||
while True:
|
|
||||||
output = process.stdout.readline()
|
|
||||||
if output == '' and process.poll() is not None:
|
|
||||||
break
|
|
||||||
if output:
|
|
||||||
print(output.strip())
|
|
||||||
for pattern in patterns:
|
|
||||||
if re.search(pattern, output):
|
|
||||||
print(f"Matched pattern: {pattern}")
|
|
||||||
process.send_signal(signal.SIGINT)
|
|
||||||
break
|
|
||||||
rc = process.poll()
|
|
||||||
if rc == 0:
|
|
||||||
exit(0)
|
|
||||||
else:
|
|
||||||
print(f"docker-compose exited with code {rc}")
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
print(f"Error running docker-compose: {e}")
|
|
Loading…
x
Reference in New Issue
Block a user