-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: eas build failed after changing ruby versions #1428
Changes from all commits
fd0aa1a
fb913fb
f5fbc33
53af377
d79fe09
c6fea59
09f4119
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,29 +16,12 @@ jobs: | |
- name: Setup repo | ||
uses: actions/checkout@v4 | ||
|
||
- name: Clean Android Device | ||
# https://github.com/actions/runner-images/issues/2840#issuecomment-790492173 | ||
run: | | ||
sudo rm -rf /usr/share/dotnet | ||
sudo rm -rf /opt/ghc | ||
sudo rm -rf "/usr/local/share/boost" | ||
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | ||
|
||
- name: Setup node | ||
uses: actions/[email protected] | ||
with: | ||
node-version: 20.x | ||
cache: "yarn" | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: "17" | ||
distribution: "temurin" | ||
|
||
- name: Setup Android SDK | ||
uses: android-actions/setup-android@v3 | ||
|
||
- name: 🏗 Setup EAS | ||
uses: expo/expo-github-action@v8 | ||
with: | ||
|
@@ -49,10 +32,4 @@ jobs: | |
run: yarn install | ||
|
||
- name: Build Android app | ||
run: eas build --platform android --profile development --local --output ${{ github.workspace }}/app-release.apk | ||
|
||
- name: Upload APK artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: app-release | ||
path: ${{ github.workspace }}/app-release.apk | ||
run: eas build --profile development --platform android --non-interactive |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
3.2.5 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#!/bin/bash | ||
|
||
# ANSI color codes | ||
GREEN='\033[0;32m' | ||
RED='\033[0;31m' | ||
YELLOW='\033[1;33m' | ||
NC='\033[0m' # No Color | ||
BOLD='\033[1m' | ||
|
||
# Function to check if a command exists | ||
command_exists() { | ||
command -v "$1" >/dev/null 2>&1 | ||
} | ||
|
||
# Function to print status | ||
print_status() { | ||
local name=$1 | ||
local version=$2 | ||
local path=$3 | ||
local status=$4 | ||
|
||
printf "${BOLD}%-12s${NC}" "$name" | ||
|
||
if [ "$status" = "OK" ]; then | ||
printf "${GREEN}✓${NC} " | ||
else | ||
printf "${RED}✗${NC} " | ||
fi | ||
|
||
printf "%-45s" "$version" | ||
echo "$path" | ||
} | ||
|
||
echo -e "\n${BOLD}Checking iOS build dependencies...${NC}\n" | ||
|
||
# Check Ruby | ||
if command_exists ruby; then | ||
RUBY_VERSION=$(ruby -v) | ||
RUBY_PATH=$(which ruby) | ||
print_status "RUBY" "$RUBY_VERSION" "$RUBY_PATH" "OK" | ||
else | ||
print_status "RUBY" "Not installed" "N/A" "ERROR" | ||
fi | ||
|
||
# Check Bundler | ||
if command_exists bundle; then | ||
BUNDLER_VERSION=$(bundle -v) | ||
BUNDLER_PATH=$(which bundle) | ||
print_status "BUNDLER" "$BUNDLER_VERSION" "$BUNDLER_PATH" "OK" | ||
else | ||
print_status "BUNDLER" "Not installed" "N/A" "ERROR" | ||
fi | ||
|
||
# Check CocoaPods | ||
if command_exists pod; then | ||
POD_VERSION=$(pod --version) | ||
POD_PATH=$(which pod) | ||
print_status "COCOAPODS" "v$POD_VERSION" "$POD_PATH" "OK" | ||
else | ||
print_status "COCOAPODS" "Not installed" "N/A" "ERROR" | ||
fi | ||
|
||
# Print Gem environment | ||
echo -e "\n${BOLD}Ruby Gem Environment:${NC}" | ||
echo "GEM HOME: $(gem env home)" | ||
echo "GEM PATH: $(gem env gempath)" | ||
|
||
# Check Gemfile configuration | ||
if [ -f "ios/Gemfile" ]; then | ||
echo -e "\n${BOLD}Gemfile Configuration:${NC}" | ||
echo "Ruby Version: $(grep "ruby '" ios/Gemfile | cut -d"'" -f2)" | ||
echo "Bundler Version: $(grep "bundler" ios/Gemfile | grep -v "#" | head -n1)" | ||
else | ||
echo -e "\n${RED}Warning: ios/Gemfile not found${NC}" | ||
fi | ||
|
||
echo -e "\nDone checking dependencies.\n" |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,44 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/bin/bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
############################################################### | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Quickly cleans and rebuilds a React Native project by moving | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# build directories to Trash and reinstalling dependencies. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Uses AppleScript for fast native Trash operations, similar | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# to Cmd+Delete in Finder. This is much faster than rm -rf. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Side Effects: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# - Moves node_modules, ios/build, ios/Pods to Trash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# - Runs yarn install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# - Runs pod install for iOS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# - Prints status messages to terminal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Example: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# In terminal from project root: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# ./scripts/reactNativeCleanBuild.sh | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Output: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Moving node_modules to trash... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Moving ios/build to trash... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Moving ios/Pods to trash... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Running yarn install... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Running pod install... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Clean and rebuild complete! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
############################################################### | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Moving node_modules to trash..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/node_modules\"" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Moving ios/build to trash..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/ios/build\"" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Moving ios/Pods to trash..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/ios/Pods\"" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+29
to
+36
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add error handling and platform checks The script uses macOS-specific AppleScript commands without platform verification or error handling. Consider this improved implementation: +# Check if running on macOS
+if [[ "$OSTYPE" != "darwin"* ]]; then
+ echo "Error: This script requires macOS"
+ exit 1
+fi
+
+remove_if_exists() {
+ local path="$1"
+ if [ -e "$path" ]; then
+ echo "Moving $path to trash..."
+ if ! osascript -e "tell app \"Finder\" to delete POSIX file \"$path\""; then
+ echo "Error: Failed to move $path to trash"
+ exit 1
+ fi
+ fi
+}
+
-echo "Moving node_modules to trash..."
-osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/node_modules\""
-
-echo "Moving ios/build to trash..."
-osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/ios/build\""
-
-echo "Moving ios/Pods to trash..."
-osascript -e "tell app \"Finder\" to delete POSIX file \"$PWD/ios/Pods\""
+remove_if_exists "$PWD/node_modules"
+remove_if_exists "$PWD/ios/build"
+remove_if_exists "$PWD/ios/Pods" 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Running yarn install..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Running pod install..." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cd ios && pod install && cd .. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+38
to
+42
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add error handling for dependency installation The dependency installation commands lack error handling. Apply this improvement: echo "Running yarn install..."
-yarn install
+if ! yarn install; then
+ echo "Error: yarn install failed"
+ exit 1
+fi
echo "Running pod install..."
-cd ios && pod install && cd ..
+if ! (cd ios && pod install); then
+ echo "Error: pod install failed"
+ exit 1
+fi 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Clean and rebuild complete!" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Add version compatibility validation
The script checks for the presence of Ruby and Bundler versions but doesn't validate if they match the required versions.
Add version validation:
📝 Committable suggestion