如何配置GitHub Enterprise自托管运行器以构建Android APK?
配置GitHub Enterprise自托管运行器构建Android APK
一、添加并配置自托管运行器
- 在GitHub Enterprise仓库(或组织)的Settings → Actions → Runners页面,点击Add runner
- 根据运行器的操作系统(推荐Linux),复制页面提供的命令执行:
- 下载运行器安装包:
curl -o actions-runner-linux-x64-2.309.0.tar.gz -L https://<你的GHES域名>/actions/runner/releases/download/v2.309.0/actions-runner-linux-x64-2.309.0.tar.gz(版本号以实际页面显示为准) - 解压安装包:
tar xzf actions-runner-linux-x64-2.309.0.tar.gz - 初始化配置:
./config.sh --url https://<你的GHES域名>/<用户名>/<仓库名> --token <页面提供的临时token> - 注册为系统服务(实现开机自启):
sudo ./svc.sh install && sudo ./svc.sh start
- 下载运行器安装包:
二、准备运行器的Android构建环境
在自托管运行器上手动安装以下依赖:
- OpenJDK 11:Android构建的推荐JDK版本,安装后将
JAVA_HOME写入运行器用户的~/.bashrc或系统环境配置文件,示例:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 - Android SDK命令行工具:
- 下载并解压Android SDK命令行工具到指定目录(如
/opt/android-sdk) - 设置
ANDROID_HOME环境变量:export ANDROID_HOME=/opt/android-sdk - 使用
sdkmanager安装必要组件:sdkmanager "platforms;android-33" \ "build-tools;33.0.2" \ "platform-tools" \ "extras;android;m2repository" \ "extras;google;m2repository"
- 下载并解压Android SDK命令行工具到指定目录(如
- Gradle:无需全局安装,通过项目根目录的
gradlewwrapper自动下载即可,确保运行器用户拥有该文件的执行权限
三、编写无开源Action的工作流文件
在仓库根目录创建.github/workflows/build-android.yml,内容如下:
name: Build Android APK on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build-apk: runs-on: self-hosted steps: - name: Checkout code run: | git init git remote add origin https://<你的GHES域名>/<用户名>/<仓库名>.git git fetch origin $GITHUB_REF_NAME git checkout $GITHUB_REF_NAME - name: Set up JDK run: | export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH java -version - name: Set up Android environment run: | export ANDROID_HOME=/opt/android-sdk export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/33.0.2:$PATH sdkmanager --version - name: Build Debug APK run: ./gradlew assembleDebug - name: Archive APK run: | mkdir -p build-outputs cp app/build/outputs/apk/debug/app-debug.apk build-outputs/ # 如需上传到GHES仓库,可调用GHES API,示例: # curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -F file=@build-outputs/app-debug.apk https://<你的GHES域名>/api/v3/repos/<用户名>/<仓库名>/releases/<release_id>/assets
注意:替换
<你的GHES域名>、<用户名>、<仓库名>为实际信息;JAVA_HOME和ANDROID_HOME路径需与运行器配置一致
四、测试工作流
提交工作流文件到仓库,触发push或pull request后,查看Actions页面的运行日志,确认APK构建成功,产物默认存放在运行器的app/build/outputs/apk/debug目录下
内容的提问来源于stack exchange,提问作者SAMEER SHEKHAR
相关产品推荐
相关产品推荐

