Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 51 additions & 2 deletions .github/workflows/profile-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -420,10 +420,59 @@ jobs:
done < ./.env
echo "✅ Export complete"

- name: Install ImageMagick (Ubuntu)
- name: Install ImageMagick & Ninja (Ubuntu)
run: |
sudo apt-get update
sudo apt-get install -y imagemagick
sudo apt-get install -y imagemagick ninja-build

- name: Ensure Android SDK/NDK/CMake toolchain
shell: bash
env:
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
run: |
set -e

# Find a working sdkmanager (latest if present, else first found)
if [ -x "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager"
else
SDKMGR=$(ls -1d "$ANDROID_SDK_ROOT/cmdline-tools"/*/bin/sdkmanager 2>/dev/null | head -n1 || true)
if [ -z "$SDKMGR" ]; then
echo "No cmdline-tools found; installing 'cmdline-tools;latest' with the preinstalled sdkmanager..."
# Use the prebundled sdkmanager path on GH runners
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/bin/sdkmanager"
"$SDKMGR" "cmdline-tools;latest"
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager"
fi
fi

echo "Using sdkmanager at: $SDKMGR"

# Accept licenses; don't fail on SIGPIPE from 'yes'
yes | "$SDKMGR" --licenses >/dev/null 2>&1 || true

# Helper: install component if missing
need() {
local p="$1"
if ! "$SDKMGR" --list_installed | grep -q "^ $p$"; then
echo "Installing $p"
"$SDKMGR" "$p"
else
echo "✓ $p already installed"
fi
}

# Match root gradle pins
need "platforms;android-35"
need "build-tools;35.0.0"
need "ndk;27.1.12297006"

# CMake version
need "cmake;3.22.1"

# Sanity output
"$ANDROID_SDK_ROOT/cmake/3.22.1/bin/cmake" --version || true
test -f "$ANDROID_SDK_ROOT/ndk/27.1.12297006/source.properties" && echo "✅ NDK 27.1.12297006 installed"

- name: Generate app icon and splash screen
run: |
Expand Down
55 changes: 54 additions & 1 deletion .github/workflows/react-native-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,66 @@ jobs:
run: |
echo "$GOOGLE_SERVICES_JSON" > android/app/google-services.json

# Use JDK 21 to match your local environment
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

- name: Install Ninja (Ubuntu)
run: |
sudo apt-get update
sudo apt-get install -y ninja-build

- name: Ensure Android SDK/NDK/CMake toolchain
shell: bash
env:
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
run: |
set -e

# Find a working sdkmanager (latest if present, else first found)
if [ -x "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager"
else
SDKMGR=$(ls -1d "$ANDROID_SDK_ROOT/cmdline-tools"/*/bin/sdkmanager 2>/dev/null | head -n1 || true)
if [ -z "$SDKMGR" ]; then
echo "No cmdline-tools found; installing 'cmdline-tools;latest' with the preinstalled sdkmanager..."
# Use the prebundled sdkmanager path on GH runners
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/bin/sdkmanager"
"$SDKMGR" "cmdline-tools;latest"
SDKMGR="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager"
fi
fi

echo "Using sdkmanager at: $SDKMGR"

# Accept licenses; don't fail on SIGPIPE from 'yes'
yes | "$SDKMGR" --licenses >/dev/null 2>&1 || true

# Helper: install component if missing
need() {
local p="$1"
if ! "$SDKMGR" --list_installed | grep -q "^ $p$"; then
echo "Installing $p"
"$SDKMGR" "$p"
else
echo "✓ $p already installed"
fi
}

# Match root gradle pins
need "platforms;android-35"
need "build-tools;35.0.0"
need "ndk;27.1.12297006"

# CMake version
need "cmake;3.22.1"

# Sanity output
"$ANDROID_SDK_ROOT/cmake/3.22.1/bin/cmake" --version || true
test -f "$ANDROID_SDK_ROOT/ndk/27.1.12297006/source.properties" && echo "✅ NDK 27.1.12297006 installed"

- name: Cache Gradle Wrapper
uses: actions/cache@v4
with:
Expand Down
Loading