From 0f83730a240a3ce57fdb6fb5a6c3db7979615888 Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Fri, 23 Jan 2026 14:11:05 +0100 Subject: [PATCH] Tried new build workflow --- .gitea/workflows/pull_request.yaml | 60 ++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/pull_request.yaml b/.gitea/workflows/pull_request.yaml index d6d9be8..21b50d2 100644 --- a/.gitea/workflows/pull_request.yaml +++ b/.gitea/workflows/pull_request.yaml @@ -29,6 +29,13 @@ jobs: - name: Install Android SDK command-line tools and components run: | export ANDROID_SDK_ROOT="$HOME/android-sdk" + # If SDK already present (e.g., mounted from host or cached), skip install + if [ -x "$ANDROID_SDK_ROOT/platform-tools/adb" ] || [ -x "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then + echo "Found existing Android SDK at $ANDROID_SDK_ROOT -- skipping download/install." + ls -la $ANDROID_SDK_ROOT || true + exit 0 + fi + if command -v sudo >/dev/null 2>&1; then sudo apt-get update && sudo apt-get install -y unzip else @@ -36,11 +43,58 @@ jobs: fi mkdir -p $ANDROID_SDK_ROOT/cmdline-tools cd $ANDROID_SDK_ROOT - wget https://dl.google.com/android/repository/commandlinetools-linux_latest.zip -O cmdline-tools.zip + # Allow overriding the download URL via environment variable (useful for mirrors) + default_urls=( + "https://dl.google.com/android/repository/commandlinetools-linux_latest.zip" + "https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip" + "https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip" + "https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip" + "https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip" + ) + urls=() + if [ -n "$ANDROID_CMDLINE_TOOLS_URL" ]; then + urls+=("$ANDROID_CMDLINE_TOOLS_URL") + fi + urls+=("${default_urls[@]}") + + downloaded=false + for url in "${urls[@]}"; do + echo "Trying $url" + # Check existence (print server response if not found) + if wget -q --spider "$url" 2>&1 | tee /dev/stderr | grep -q "HTTP/1.1 200\|HTTP/2 200"; then + echo "Downloading $url" + if wget --show-progress --progress=bar:force:noscroll:giga "$url" -O cmdline-tools.zip; then + downloaded=true + break + fi + else + echo "URL not available or returned non-200: $url" + echo "Server response:" + wget -S --spider "$url" 2>&1 || true + fi + done + if [ "$downloaded" != "true" ]; then + echo "ERROR: Could not download Android command-line tools from known URLs." + echo "Tried: ${urls[*]}" + echo "If you are running this locally with 'act' or another restricted runner, ensure the runner has network access or set ANDROID_CMDLINE_TOOLS_URL to a reachable mirror." + echo "Examples for local 'act' runs:" + echo " - Pre-download commandlinetools zip and mount into the container as: -v /path/to/cmdline-tools.zip:", + echo " and set ANDROID_SDK_ROOT to /github/home/android-sdk (or pass ANDROID_CMDLINE_TOOLS_URL to point to the mounted file)" + echo " - Or set ANDROID_CMDLINE_TOOLS_URL to a working URL: e.g. export ANDROID_CMDLINE_TOOLS_URL=\"file:///github/home/cmdline-tools.zip\"" + exit 8 + fi unzip -q cmdline-tools.zip -d $ANDROID_SDK_ROOT/cmdline-tools # move the extracted folder into a 'latest' folder (sdkmanager expects this layout) if [ -d "$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools" ]; then mv $ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/latest || true + else + # Some zips extract a folder named 'cmdline-tools' already under different structure; try to normalize + for d in $ANDROID_SDK_ROOT/cmdline-tools/*; do + if [ -d "$d/bin" ]; then + mv "$d" $ANDROID_SDK_ROOT/cmdline-tools/latest || true + break + fi + done fi export PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$PATH # Install essential SDK components (adjust platform version/build-tools as needed) @@ -84,9 +138,7 @@ jobs: test: runs-on: ubuntu-latest - env: - RUNNER_TOOL_CACHE: /toolcache - if: f + if: false steps: - name: Checkout code uses: actions/checkout@v4