diff --git a/.config/dictionaries/project.dic b/.config/dictionaries/project.dic index f822504d9..75bcee561 100644 --- a/.config/dictionaries/project.dic +++ b/.config/dictionaries/project.dic @@ -78,9 +78,11 @@ jormungandr Jörmungandr junitreport Keyhash +keyserver lcov Leshiy libapp +libavcodec libflutter lintfix localizable diff --git a/catalyst_voices/Earthfile b/catalyst_voices/Earthfile index 5ee37c74a..b31e35537 100644 --- a/catalyst_voices/Earthfile +++ b/catalyst_voices/Earthfile @@ -7,6 +7,7 @@ VERSION --try --global-cache --arg-scope-and-set 0.7 # subcommand. deps: FROM debian:bookworm-slim + ARG TARGETARCH RUN apt-get update RUN apt-get install -y git curl unzip bzip2 bash jq gpg lcov COPY --dir test_driver/scripts . diff --git a/catalyst_voices/test_driver/Earthfile b/catalyst_voices/test_driver/Earthfile index 6b240d5da..b68ca8fc4 100644 --- a/catalyst_voices/test_driver/Earthfile +++ b/catalyst_voices/test_driver/Earthfile @@ -2,6 +2,7 @@ VERSION --try --global-cache --arg-scope-and-set 0.7 integration-test-web: FROM ../+build + ARG TARGETARCH ARG browser LET driver_port = 4444 @@ -15,7 +16,7 @@ integration-test-web: # Commenting out Edge tests as they are failing due to: # https://github.com/flutter/flutter/issues/76213 # https://github.com/flutter/flutter/issues/142021 - #IF [ $browser = "edge" ] + #IF [ $browser = "edge" && $TARGETARCH = "amd64" ]] # LET driver = "msedgedriver" #END RUN ($driver --port=$driver_port > $driver.log &) && \ diff --git a/catalyst_voices/test_driver/scripts/install-chrome-linux64.sh b/catalyst_voices/test_driver/scripts/install-chrome-linux64.sh index af4aca22d..bdbb6cbc0 100644 --- a/catalyst_voices/test_driver/scripts/install-chrome-linux64.sh +++ b/catalyst_voices/test_driver/scripts/install-chrome-linux64.sh @@ -1,35 +1,46 @@ #!/bin/bash -# This script installs Chrome for testing and Chromedriver -PLATFORM=linux64 -DISTR="Debian 12 (Bookworm)" +# This script installs Chrome/Chromium for testing and Chromedriver +# There is no Chrome-for-testing build for linux/arm64, using Chromium instead +# https://github.com/GoogleChromeLabs/chrome-for-testing/issues/1 -# Installing dependencies for Chrome. Workaround for: -# https://github.com/GoogleChromeLabs/chrome-for-testing/issues/55 -echo "Installing Google Chrome dependencies" -chrome_deps=$(curl -s https://raw.githubusercontent.com/chromium/chromium/main/chrome/installer/linux/debian/dist_package_versions.json) -deps=$(echo "$chrome_deps" | jq -r ".\"$DISTR\" | keys[]") -apt-get update -for dep in $deps; do - apt-get install -y $dep -done - -# Get latest chrome for testing version -json_chrome=$(curl -s https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json) - -# Install chrome -echo "Installing Google Chrome..." -latest_chrome=$(echo "$json_chrome" | jq -r ".channels.Stable.downloads.chrome[].url | select(contains(\"$PLATFORM\"))") -curl -s --create-dirs -o chrome.zip --output-dir /opt/chrome "$latest_chrome" -unzip -d /opt/chrome -j /opt/chrome/chrome.zip && rm /opt/chrome/chrome.zip -ln -s /opt/chrome/chrome /usr/local/bin/google-chrome -chmod +x /opt/chrome/chrome -google-chrome --version - -# Install chromedriver -echo "Installing Chromedriver..." -latest_chromedriver=$(echo "$json_chrome" | jq -r ".channels.Stable.downloads.chromedriver[].url | select(contains(\"$PLATFORM\"))") -curl -s --create-dirs -o chromedriver.zip --output-dir /opt/chromedriver "$latest_chromedriver" -unzip -d /opt/chromedriver -j /opt/chromedriver/chromedriver.zip && rm /opt/chromedriver/chromedriver.zip -ln -s /opt/chromedriver/chromedriver /usr/local/bin/chromedriver -chmod +x /opt/chromedriver/chromedriver -chromedriver --version +if [ "$TARGETARCH" == "amd64" ] +then + DISTR="Debian 12 (Bookworm)" + # Installing dependencies for Chrome. Workaround for: + # https://github.com/GoogleChromeLabs/chrome-for-testing/issues/55 + echo -e "\033[1;34mInstalling Google Chrome dependencies..." + chrome_deps=$(curl -s https://raw.githubusercontent.com/chromium/chromium/main/chrome/installer/linux/debian/dist_package_versions.json) + deps=$(echo "$chrome_deps" | jq -r ".\"$DISTR\" | keys[]") + apt-get update + for dep in $deps; do + apt-get install -y $dep + done + # Get latest chrome-for-testing version + json_chrome=$(curl -s https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json) + # Install Chrome + echo -e "\033[1;34mInstalling Google Chrome..." + latest_chrome=$(echo "$json_chrome" | jq -r ".channels.Stable.downloads.chrome[].url | select(contains(\"linux64\"))") + curl -s --create-dirs -o chrome.zip --output-dir /opt/chrome "$latest_chrome" + unzip -d /opt/chrome -j /opt/chrome/chrome.zip && rm /opt/chrome/chrome.zip + ln -s /opt/chrome/chrome /usr/local/bin/google-chrome + chmod +x /opt/chrome/chrome + google-chrome --version + # Install Chromedriver + echo -e "\033[1;34mInstalling Chromedriver..." + latest_chromedriver=$(echo "$json_chrome" | jq -r ".channels.Stable.downloads.chromedriver[].url | select(contains(\"linux64\"))") + curl -s --create-dirs -o chromedriver.zip --output-dir /opt/chromedriver "$latest_chromedriver" + unzip -d /opt/chromedriver -j /opt/chromedriver/chromedriver.zip && rm /opt/chromedriver/chromedriver.zip + ln -s /opt/chromedriver/chromedriver /usr/local/bin/chromedriver + chmod +x /opt/chromedriver/chromedriver + chromedriver --version +else + echo -e "\033[1;34mInstalling Chromium..." + apt-get update + apt-get install -y chromium + ln -s /usr/bin/chromium /usr/local/bin/google-chrome + google-chrome --version + + echo -e "\033[1;34mInstalling Chromedriver..." + apt-get install chromium-driver + chromedriver --version +fi \ No newline at end of file diff --git a/catalyst_voices/test_driver/scripts/install-edge-linux64.sh b/catalyst_voices/test_driver/scripts/install-edge-linux64.sh index 3b2729aa4..a941a0b34 100644 --- a/catalyst_voices/test_driver/scripts/install-edge-linux64.sh +++ b/catalyst_voices/test_driver/scripts/install-edge-linux64.sh @@ -1,18 +1,22 @@ #!/bin/bash # This script installs Edge and Edgedriver. -PLATFORM=linux64 +# There is no Edge version build for linux/arm64, installing only for amd64 +# https://github.com/MicrosoftEdge/Status/issues/697 -echo "Installing Edge..." -install -d -m 0755 /etc/apt/keyrings -curl -fSsL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/keyrings/microsoft-edge.gpg > /dev/null -echo 'deb [signed-by=/etc/apt/keyrings/microsoft-edge.gpg] https://packages.microsoft.com/repos/edge stable main' | tee /etc/apt/sources.list.d/microsoft-edge.list -apt-get update && apt-get install -y microsoft-edge-stable -microsoft-edge-stable --version +if [ "$TARGETARCH" == "amd64" ] +then + echo -e "\033[1;34mInstalling Edge..." + install -d -m 0755 /etc/apt/keyrings + curl -fSsL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/keyrings/microsoft-edge.gpg > /dev/null + echo 'deb [signed-by=/etc/apt/keyrings/microsoft-edge.gpg] https://packages.microsoft.com/repos/edge stable main' | tee /etc/apt/sources.list.d/microsoft-edge.list + apt-get update && apt-get install -y microsoft-edge-stable + microsoft-edge-stable --version -echo "Installing Edgedriver..." -edge_version=$(microsoft-edge-stable --version | grep -Eo '[0-9]+.+' | tr -d ' ') -curl -s --create-dirs -o msedgedriver.zip --output-dir /opt/msedgedriver "https://msedgedriver.azureedge.net/$edge_version/edgedriver_$PLATFORM.zip" -unzip -d /opt/msedgedriver -j /opt/msedgedriver/msedgedriver.zip && rm /opt/msedgedriver/msedgedriver.zip -ln -s /opt/msedgedriver/msedgedriver /usr/local/bin/msedgedriver -chmod +x /opt/msedgedriver/msedgedriver -msedgedriver --version \ No newline at end of file + echo -e "\033[1;34mInstalling Edgedriver..." + edge_version=$(microsoft-edge-stable --version | grep -Eo '[0-9]+.+' | tr -d ' ') + curl -s --create-dirs -o msedgedriver.zip --output-dir /opt/msedgedriver "https://msedgedriver.azureedge.net/$edge_version/edgedriver_linux64.zip" + unzip -d /opt/msedgedriver -j /opt/msedgedriver/msedgedriver.zip && rm /opt/msedgedriver/msedgedriver.zip + ln -s /opt/msedgedriver/msedgedriver /usr/local/bin/msedgedriver + chmod +x /opt/msedgedriver/msedgedriver + msedgedriver --version +fi \ No newline at end of file diff --git a/catalyst_voices/test_driver/scripts/install-firefox-linux64.sh b/catalyst_voices/test_driver/scripts/install-firefox-linux64.sh index 1b2011c25..df9642351 100644 --- a/catalyst_voices/test_driver/scripts/install-firefox-linux64.sh +++ b/catalyst_voices/test_driver/scripts/install-firefox-linux64.sh @@ -1,25 +1,35 @@ #!/bin/bash # This script installs Firefox and Geckodriver. Geckodriver supported versions: # https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html -PLATFORM=linux64 +# Firefox for linux/arm64 is only in the esr or the unstable version, using the latter -echo "Installing Firefox..." -install -d -m 0755 /etc/apt/keyrings -curl -fSsL https://packages.mozilla.org/apt/repo-signing-key.gpg | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null -echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null -echo ' -Package: * -Pin: origin packages.mozilla.org -Pin-Priority: 1000 -' | tee /etc/apt/preferences.d/mozilla -apt-get update && apt-get install -y firefox -firefox --version - -echo "Installing Geckodriver..." +if [ "$TARGETARCH" == "amd64" ] +then + PLATFORM=linux64 + echo -e "\033[1;34mInstalling Firefox..." + install -d -m 0755 /etc/apt/keyrings + curl -fSsL https://packages.mozilla.org/apt/repo-signing-key.gpg | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null + echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null + echo ' + Package: * + Pin: origin packages.mozilla.org + Pin-Priority: 1000 + ' | tee /etc/apt/preferences.d/mozilla + apt-get update && apt-get install -y firefox + firefox --version +else + PLATFORM=linux-aarch64 + echo -e "\033[1;34mInstalling Firefox..." + echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 + apt-get update && apt-get install -y libavcodec-extra firefox + firefox --version +fi +echo -e "\033[1;34mInstalling Geckodriver..." json_geckodriver=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest) latest_geckodriver=$(echo "$json_geckodriver" | jq -r ".assets[].browser_download_url | select(contains(\"$PLATFORM\") and endswith(\"gz\"))") curl -sL --create-dirs -o geckodriver.tar.gz --output-dir /opt/geckodriver "$latest_geckodriver" tar -xzf /opt/geckodriver/geckodriver.tar.gz -C /opt/geckodriver/ && rm /opt/geckodriver/geckodriver.tar.gz ln -s /opt/geckodriver/geckodriver /usr/local/bin/geckodriver chmod +x /opt/geckodriver/geckodriver -geckodriver --version \ No newline at end of file +geckodriver --version