Merge branch 'develop_sky' into 'master_sky'
fix:调整出现Could not find的问题,显式指定 See merge request StarlockTeam/app-starlock!78
This commit is contained in:
commit
7716f8b33e
@ -64,7 +64,9 @@ variables:
|
|||||||
.setup_fastlane_android:
|
.setup_fastlane_android:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
- rm -rf ~/.gem ~/.bundle vendor/bundle_android # 强烈建议每次清理,防止并发/缓存污染
|
- rm -rf ~/.gem ~/.bundle vendor/bundle_android
|
||||||
|
- export GEM_HOME="$PWD/vendor/bundle_android"
|
||||||
|
- export GEM_PATH="$PWD/vendor/bundle_android"
|
||||||
- export PATH="$HOME/.rbenv/bin:$PATH"
|
- export PATH="$HOME/.rbenv/bin:$PATH"
|
||||||
- eval "$(rbenv init -)"
|
- eval "$(rbenv init -)"
|
||||||
- rbenv global 2.7.8
|
- rbenv global 2.7.8
|
||||||
@ -95,7 +97,9 @@ variables:
|
|||||||
.setup_fastlane_ios:
|
.setup_fastlane_ios:
|
||||||
extends: .build_rule
|
extends: .build_rule
|
||||||
before_script:
|
before_script:
|
||||||
- rm -rf ~/.gem ~/.bundle vendor/bundle_ios # 强烈建议每次清理,防止并发/缓存污染
|
- rm -rf ~/.gem ~/.bundle vendor/bundle_ios
|
||||||
|
- export GEM_HOME="$PWD/vendor/bundle_ios"
|
||||||
|
- export GEM_PATH="$PWD/vendor/bundle_ios"
|
||||||
- export PATH="$HOME/.rbenv/bin:$PATH"
|
- export PATH="$HOME/.rbenv/bin:$PATH"
|
||||||
- eval "$(rbenv init -)"
|
- eval "$(rbenv init -)"
|
||||||
- rbenv global 2.7.8
|
- rbenv global 2.7.8
|
||||||
|
|||||||
@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 用法: ./scripts/bundle_install_retry.sh <gemfile_path> <bundle_path>
|
|
||||||
# 例如: ./scripts/bundle_install_retry.sh android/Gemfile vendor/bundle_android
|
|
||||||
|
|
||||||
GEMFILE_PATH="$1"
|
|
||||||
BUNDLE_PATH="$2"
|
|
||||||
|
|
||||||
if [ -z "$GEMFILE_PATH" ] || [ -z "$BUNDLE_PATH" ]; then
|
|
||||||
echo "用法: $0 <gemfile_path> <bundle_path>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
try_count=0
|
|
||||||
max_try=3
|
|
||||||
success=0
|
|
||||||
|
|
||||||
# 先用阿里云镜像
|
|
||||||
bundle config mirror.https://rubygems.org https://mirrors.aliyun.com/rubygems/
|
|
||||||
while [ $try_count -lt $max_try ]; do
|
|
||||||
echo "[INFO] 第$((try_count+1))次尝试使用阿里云镜像 bundle install..."
|
|
||||||
bundle config set --local path "$BUNDLE_PATH"
|
|
||||||
bundle install --gemfile "$GEMFILE_PATH"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "[SUCCESS] 使用阿里云镜像 bundle install 成功"
|
|
||||||
success=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
try_count=$((try_count+1))
|
|
||||||
sleep 2
|
|
||||||
echo "[WARN] 阿里云镜像 bundle install 第$try_count 次失败,准备重试..."
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $success -eq 0 ]; then
|
|
||||||
echo "[ERROR] 阿里云镜像 bundle install 失败$max_try次,切换为官方源重试..."
|
|
||||||
bundle config mirror.https://rubygems.org https://rubygems.org
|
|
||||||
bundle config set --local path "$BUNDLE_PATH"
|
|
||||||
bundle install --gemfile "$GEMFILE_PATH"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "[SUCCESS] 官方源 bundle install 成功"
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "[FATAL] 官方源 bundle install 依然失败,请检查网络或Gemfile配置。"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 用法: bash scripts/bundle_missing_gem_auto_add.sh <gemfile_path> <bundle_path> <main_cmd>
|
|
||||||
# 例如: bash scripts/bundle_missing_gem_auto_add.sh ios/Gemfile vendor/bundle_ios "bundle exec fastlane -v"
|
|
||||||
|
|
||||||
GEMFILE_PATH="$1"
|
|
||||||
BUNDLE_PATH="$2"
|
|
||||||
MAIN_CMD="$3"
|
|
||||||
|
|
||||||
if [ -z "$GEMFILE_PATH" ] || [ -z "$BUNDLE_PATH" ] || [ -z "$MAIN_CMD" ]; then
|
|
||||||
echo "用法: $0 <gemfile_path> <bundle_path> <main_cmd>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
max_try=3
|
|
||||||
try_count=0
|
|
||||||
success=0
|
|
||||||
|
|
||||||
bundle check --path "$BUNDLE_PATH" || bundle install --gemfile "$GEMFILE_PATH" --path "$BUNDLE_PATH"
|
|
||||||
|
|
||||||
while [ $try_count -lt $max_try ]; do
|
|
||||||
echo "[INFO] 第$((try_count+1))次尝试运行主命令: $MAIN_CMD"
|
|
||||||
$MAIN_CMD > bundle_missing_gem.log 2>&1 && success=1 && break
|
|
||||||
# 捕获缺失gem
|
|
||||||
missing_gem=$(grep -o "Could not find [^ ]*" bundle_missing_gem.log | awk '{print $4}' | head -n1)
|
|
||||||
if [ -n "$missing_gem" ]; then
|
|
||||||
if ! grep -q "gem '$missing_gem'" "$GEMFILE_PATH"; then
|
|
||||||
echo "gem '$missing_gem'" >> "$GEMFILE_PATH"
|
|
||||||
echo "[AUTO] Gemfile已自动补全: $missing_gem"
|
|
||||||
else
|
|
||||||
echo "[WARN] Gemfile已包含 $missing_gem,但依然缺失,可能是平台或缓存问题"
|
|
||||||
fi
|
|
||||||
bundle install --gemfile "$GEMFILE_PATH" --path "$BUNDLE_PATH"
|
|
||||||
else
|
|
||||||
echo "[FATAL] 未检测到缺失gem,需人工介入。日志如下:"
|
|
||||||
cat bundle_missing_gem.log
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
try_count=$((try_count+1))
|
|
||||||
sleep 2
|
|
||||||
echo "[WARN] 第$try_count 次自动补全后重试..."
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $success -eq 1 ]; then
|
|
||||||
echo "[SUCCESS] 所有依赖已补全,主命令执行成功。"
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "[FATAL] 自动补全$max_try次后依然失败,请人工检查Gemfile和依赖环境。"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
Loading…
x
Reference in New Issue
Block a user