diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index ffbca15c..4c4ac5c7 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -11,6 +11,10 @@ on: branches: [dev, main] workflow_dispatch: +concurrency: + group: android-${{ github.ref }} + cancel-in-progress: true + defaults: run: shell: bash diff --git a/.github/workflows/build-ios-sim.yml b/.github/workflows/build-ios-sim.yml index 31db21bb..5d90e65a 100644 --- a/.github/workflows/build-ios-sim.yml +++ b/.github/workflows/build-ios-sim.yml @@ -14,6 +14,12 @@ on: branches: [dev, main] workflow_dispatch: +# Cancel in-flight runs when a newer commit lands on the same branch — so a +# burst of commits doesn't pile up N copies of the same long build. +concurrency: + group: ios-sim-${{ github.ref }} + cancel-in-progress: true + defaults: run: shell: bash @@ -30,22 +36,50 @@ jobs: with: fetch-depth: 1 + # Self-hosted Mac runner persists Flutter between runs. Only install if + # it's not already on PATH or version doesn't match. + - name: Check Flutter 3.32.0 + id: flutter_check + run: | + if command -v flutter >/dev/null && flutter --version 2>/dev/null | grep -q "3\.32\.0"; then + echo "installed=true" >> "$GITHUB_OUTPUT" + flutter --version + else + echo "installed=false" >> "$GITHUB_OUTPUT" + fi + + - name: Install Flutter 3.32.0 (if missing) + if: steps.flutter_check.outputs.installed != 'true' + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.32.0' + channel: stable + cache: true + + - name: Install CocoaPods (if missing) + run: | + if ! command -v pod >/dev/null; then + sudo gem install cocoapods --no-document + fi + pod --version + - name: Show toolchain run: | set -x flutter --version xcodebuild -version pod --version - which wget unzip uname -m + which curl unzip # ---- External prebuilt deps (same as android/linux) ------------------ + # macOS doesn't ship wget by default; using curl everywhere. - name: Fetch prebuilt torch_dart run: | set -x -e pushd scripts rm -rf torch_dart torch_dart.tar.gz - wget -q https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz -O torch_dart.tar.gz + curl -fsSL -o torch_dart.tar.gz https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz mkdir torch_dart tar -xzf torch_dart.tar.gz -C torch_dart rm torch_dart.tar.gz @@ -56,7 +90,7 @@ jobs: set -x -e pushd scripts rm -rf reown_flutter reown_flutter.tar.gz - wget -q https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz -O reown_flutter.tar.gz + curl -fsSL -o reown_flutter.tar.gz https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz mkdir reown_flutter tar -xzf reown_flutter.tar.gz -C reown_flutter rm reown_flutter.tar.gz @@ -77,7 +111,7 @@ jobs: MONERO_C_TAG=$(cd scripts/monero_c && git describe --tags) mkdir -p "scripts/monero_c/release/$MONERO_C_TAG" pushd "scripts/monero_c/release/$MONERO_C_TAG" - wget -q https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip + curl -fsSL -O https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip unzip -q release-bundle.zip rm release-bundle.zip echo "=== bundle contents (one level) ===" diff --git a/.github/workflows/build-ios-testflight.yml b/.github/workflows/build-ios-testflight.yml index 40151b56..d1295ab7 100644 --- a/.github/workflows/build-ios-testflight.yml +++ b/.github/workflows/build-ios-testflight.yml @@ -21,6 +21,10 @@ on: # input for build number or auto-bump. workflow_dispatch: +concurrency: + group: ios-testflight-${{ github.ref }} + cancel-in-progress: true + defaults: run: shell: bash @@ -37,6 +41,31 @@ jobs: with: fetch-depth: 1 + - name: Check Flutter 3.32.0 + id: flutter_check + run: | + if command -v flutter >/dev/null && flutter --version 2>/dev/null | grep -q "3\.32\.0"; then + echo "installed=true" >> "$GITHUB_OUTPUT" + flutter --version + else + echo "installed=false" >> "$GITHUB_OUTPUT" + fi + + - name: Install Flutter 3.32.0 (if missing) + if: steps.flutter_check.outputs.installed != 'true' + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.32.0' + channel: stable + cache: true + + - name: Install CocoaPods (if missing) + run: | + if ! command -v pod >/dev/null; then + sudo gem install cocoapods --no-document + fi + pod --version + - name: Show toolchain run: | set -x @@ -46,12 +75,13 @@ jobs: uname -m # ---- External prebuilt deps ----------------------------------------- + # macOS doesn't ship wget; using curl everywhere. - name: Fetch prebuilt torch_dart run: | set -x -e pushd scripts rm -rf torch_dart torch_dart.tar.gz - wget -q https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz -O torch_dart.tar.gz + curl -fsSL -o torch_dart.tar.gz https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz mkdir torch_dart tar -xzf torch_dart.tar.gz -C torch_dart rm torch_dart.tar.gz @@ -62,7 +92,7 @@ jobs: set -x -e pushd scripts rm -rf reown_flutter reown_flutter.tar.gz - wget -q https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz -O reown_flutter.tar.gz + curl -fsSL -o reown_flutter.tar.gz https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz mkdir reown_flutter tar -xzf reown_flutter.tar.gz -C reown_flutter rm reown_flutter.tar.gz @@ -82,7 +112,7 @@ jobs: MONERO_C_TAG=$(cd scripts/monero_c && git describe --tags) mkdir -p "scripts/monero_c/release/$MONERO_C_TAG" pushd "scripts/monero_c/release/$MONERO_C_TAG" - wget -q https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip + curl -fsSL -O https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip unzip -q release-bundle.zip rm release-bundle.zip popd diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 047d3abd..1760bc49 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -11,6 +11,10 @@ on: branches: [dev, main] workflow_dispatch: +concurrency: + group: linux-${{ github.ref }} + cancel-in-progress: true + defaults: run: shell: bash