Skip to content

Instantly share code, notes, and snippets.

@wbmins
Last active February 1, 2026 08:46
Show Gist options
  • Select an option

  • Save wbmins/48bdfbcac8dbac3f63e3237901533070 to your computer and use it in GitHub Desktop.

Select an option

Save wbmins/48bdfbcac8dbac3f63e3237901533070 to your computer and use it in GitHub Desktop.
install_jdk_if_missing() {
local JDK_URL="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.18%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz"
local JDK_TAR="OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz"
local JDK_DIR="jdk-17.0.18+8"
local INSTALL_DIR="/opt/jdk"
local PROFILE_FILE="/root/.profile"
[ -x "$INSTALL_DIR/bin/java" ] && { echo "[JDK] already installed"; return 0; }
cd /tmp || return 1
[ -f "$JDK_TAR" ] || curl -LO "$JDK_URL"
tar -xzf "$JDK_TAR"
sudo rm -rf "$INSTALL_DIR"
sudo mv "$JDK_DIR" "$INSTALL_DIR"
}
install_android_sdk_if_missing() {
local SDK_URL="https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip"
local SDK_ZIP="commandlinetools-linux-9477386_latest.zip"
local TOOLS_DIR="/opt/cmdline-tools"
local SDK_ROOT="/opt/android_sdk"
local PLATFORM="platforms;android-34"
local BUILD_TOOLS="build-tools;34.0.0"
[ -x "$TOOLS_DIR/bin/sdkmanager" ] && { echo "[ADK] already installed"; return 0; }
cd /tmp || return 1
[ -f "$SDK_ZIP" ] || curl -LO "$SDK_URL"
unzip -qo "$SDK_ZIP"
sudo rm -rf "$TOOLS_DIR"
sudo mv cmdline-tools "$TOOLS_DIR"
yes | $TOOLS_DIR/bin/sdkmanager --sdk_root="$SDK_ROOT" "$PLATFORM" "$BUILD_TOOLS"
[ ! -f "local.properties" ] && { echo "sdk.dir=/opt/android-sdk" > local.properties; return 0; }
}
update_upstream_code() {
# 1. 拿到 upstream 最新代码
git fetch upstream
# 2. 让本地 main 对齐 upstream/main
git reset --hard upstream/main
# 3. 把你要保留的 3 个提交拣回来(按顺序)
git cherry-pick 50713e790 57f440ca9 7acbdc1ba
# 4. 推送到你自己的 fork
git push origin main --force-with-lease
}
generate_signingkey_if_missing() {
[ -f "signingkey.jks" ] && { echo "[KEY] already exists"; return 0; }
/opt/jdk/bin/keytool -genkeypair \
-v \
-keystore signingkey.jks \
-storepass "wubo5413.." \
-keypass "wubo5413.." \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias mins \
-dname "CN=mins, OU=mins, O=mins, L=mins, ST=mins, C=mins"
# github action编译需要
# base64 -w 0 signingkey.jks > signingkey.txt
}
# 准备编译环境
install_jdk_if_missing
install_android_sdk_if_missing
update_upstream_code
generate_signingkey_if_missing
# 设置环境变量
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export SIGNING_KEY=signingkey.jks
export ALIAS="mins"
export KEY_STORE_PASSWORD="wubo5413.."
export KEY_PASSWORD="wubo5413.."
# 构建
./gradlew src:all:ehentai:assembleRelease
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment