diff --git a/.github/ci/build/build_android.groovy b/.github/ci/build/build_android.groovy index fc7fc2103..8d3c152de 100644 --- a/.github/ci/build/build_android.groovy +++ b/.github/ci/build/build_android.groovy @@ -7,7 +7,6 @@ buildUtils = new agora.build.BuildUtils() compileConfig = [ "sourceDir": "api-examples", - "docker": "hub.agoralab.co/server/apiexample_build_android:latest", "non-publish": [ "command": "./.github/ci/build/build_android.sh", "extraArgs": "", @@ -64,4 +63,4 @@ def doPublish(buildVariables) { sh "rm -rf *.zip *.apk || true" } -pipelineLoad(this, "ApiExample", "build", "android", "apiexample_linux") +pipelineLoad(this, "ApiExample", "build", "android", "RTC-Sample") diff --git a/.github/ci/build/build_android.sh b/.github/ci/build/build_android.sh index dad1ddc50..3722e0045 100644 --- a/.github/ci/build/build_android.sh +++ b/.github/ci/build/build_android.sh @@ -37,6 +37,7 @@ # pr: output test.zip to workspace dir # others: Rename the zip package name yourself, But need copy it to workspace dir ################################## +export PATH=$PATH:/opt/homebrew/bin echo Package_Publish: $Package_Publish echo is_tag_fetch: $is_tag_fetch @@ -68,22 +69,29 @@ else rm -rf ./$unzip_name/rtc/bin rm -rf ./$unzip_name/rtc/demo - rm ./$unzip_name/rtc/commits - rm ./$unzip_name/rtc/package_size_report.txt + rm -f ./$unzip_name/.commits + rm -f ./$unzip_name/spec rm -rf ./$unzip_name/pom fi -mkdir -p ./$unzip_name/rtc/samples -cp -rf ./Android/${android_direction} ./$unzip_name/rtc/samples/API-Example || exit 1 + +mkdir -p ./$unzip_name/rtc/samples/API-Example || exit 1 + +if [ -d "./Android/${android_direction}" ]; then + cp -rf ./Android/${android_direction}/* ./$unzip_name/rtc/samples/API-Example/ || exit 1 +else + echo "Error: Source directory ./Android/${android_direction} does not exist" + exit 1 +fi + 7za a -tzip result.zip -r $unzip_name > log.txt mv result.zip $WORKSPACE/withAPIExample_${BUILD_NUMBER}_$zip_name +if [ $compress_apiexample = true ]; then + 7za a -tzip result_onlyAPIExample.zip -r ./$unzip_name/rtc/samples/API-Example >> log.txt + mv result_onlyAPIExample.zip $WORKSPACE/onlyAPIExample_${BUILD_NUMBER}_$zip_name +fi + if [ $compile_project = true ]; then - # install android sdk - which java - java --version - source ~/.bashrc - export ANDROID_HOME=/usr/lib/android_sdk - echo ANDROID_HOME: $ANDROID_HOME cd ./$unzip_name/rtc/samples/API-Example || exit 1 if [ -z "$sdk_url" ] || [ "$sdk_url" = "none" ]; then ./cloud_build.sh false || exit 1 @@ -92,4 +100,3 @@ if [ $compile_project = true ]; then fi fi - diff --git a/Android/APIExample-Audio/cloud_build.sh b/Android/APIExample-Audio/cloud_build.sh index 07dcaaa5e..f4e8ffe1b 100755 --- a/Android/APIExample-Audio/cloud_build.sh +++ b/Android/APIExample-Audio/cloud_build.sh @@ -6,14 +6,31 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch ## use open jdk 17 SYSTEM=$(uname -s) if [ "$SYSTEM" = "Linux" ];then -if [ ! -d "/tmp/jdk-17.0.2" ];then - curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz - tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz - mv jdk-17.0.2 /tmp/ + if [ ! -d "/tmp/jdk-17.0.2" ];then + curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz + tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz + mv jdk-17.0.2 /tmp/ + fi + export JAVA_HOME=/tmp/jdk-17.0.2 + export ANDROID_HOME=/usr/lib/android_sdk +elif [ "$SYSTEM" = "Darwin" ];then + export JAVA_HOME=$(/usr/libexec/java_home -v 17) + export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk} fi -export JAVA_HOME=/tmp/jdk-17.0.2 + export PATH=$JAVA_HOME/bin:$PATH -java --version +java --version || { echo "Error: Failed to get Java version"; exit 1; } + +# Configure environment +if [ "$SYSTEM" = "Linux" ];then + [ -f ~/.bashrc ] && source ~/.bashrc +else + # Try to load zsh config first, if not found then try bash_profile + if [ -f ~/.zshrc ]; then + source ~/.zshrc + elif [ -f ~/.bash_profile ]; then + source ~/.bash_profile + fi fi #change android maven to china repos diff --git a/Android/APIExample-Audio/gradle/wrapper/gradle-wrapper.properties b/Android/APIExample-Audio/gradle/wrapper/gradle-wrapper.properties index 69b417860..f42bf57ba 100644 --- a/Android/APIExample-Audio/gradle/wrapper/gradle-wrapper.properties +++ b/Android/APIExample-Audio/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip +distributionUrl=https://services.gradle.org/distributions/gradle-8.7-bin.zip diff --git a/Android/APIExample-Audio/settings.gradle b/Android/APIExample-Audio/settings.gradle index 4b5c32e8d..a286de897 100644 --- a/Android/APIExample-Audio/settings.gradle +++ b/Android/APIExample-Audio/settings.gradle @@ -1,7 +1,12 @@ pluginManagement { repositories { - maven { url "https://maven.aliyun.com/repository/public" } - google() + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } mavenCentral() gradlePluginPortal() } @@ -9,12 +14,9 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { - maven { url "https://maven.aliyun.com/repository/public" } google() mavenCentral() - maven { url "https://jitpack.io" } - maven { url "https://maven.aliyun.com/repository/public" } } } -rootProject.name='APIExample-Audio' +rootProject.name = 'APIExample-Audio' include ':app' diff --git a/Android/APIExample-Compose/cloud_build.sh b/Android/APIExample-Compose/cloud_build.sh index 206416058..dcaaddf84 100755 --- a/Android/APIExample-Compose/cloud_build.sh +++ b/Android/APIExample-Compose/cloud_build.sh @@ -6,16 +6,37 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch ## use open jdk 17 SYSTEM=$(uname -s) if [ "$SYSTEM" = "Linux" ];then -if [ ! -d "/tmp/jdk-17.0.2" ];then - curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz - tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz - mv jdk-17.0.2 /tmp/ + if [ ! -d "/tmp/jdk-17.0.2" ];then + curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz + tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz + mv jdk-17.0.2 /tmp/ + fi + export JAVA_HOME=/tmp/jdk-17.0.2 + export ANDROID_HOME=/usr/lib/android_sdk +elif [ "$SYSTEM" = "Darwin" ];then + export JAVA_HOME=$(/usr/libexec/java_home -v 17) + export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk} fi -export JAVA_HOME=/tmp/jdk-17.0.2 + export PATH=$JAVA_HOME/bin:$PATH -java --version +java --version || { echo "Error: Failed to get Java version"; exit 1; } + +# Configure environment +if [ "$SYSTEM" = "Linux" ];then + [ -f ~/.bashrc ] && source ~/.bashrc +else + # Try to load zsh config first, if not found then try bash_profile + if [ -f ~/.zshrc ]; then + source ~/.zshrc + elif [ -f ~/.bash_profile ]; then + source ~/.bash_profile + fi fi +#change android maven to china repos +sed -ie "s#google()#maven { url \"https\://maven.aliyun.com/repository/public\" }\n google()#g" settings.gradle +sed -ie "s#https://services.gradle.org/distributions#https://mirrors.cloud.tencent.com/gradle#g" gradle/wrapper/gradle-wrapper.properties + ## config appId if [ ! -f "local.properties" ];then touch local.properties diff --git a/Android/APIExample-Compose/gradle/wrapper/gradle-wrapper.properties b/Android/APIExample-Compose/gradle/wrapper/gradle-wrapper.properties index 8ae2209c3..3f3292659 100644 --- a/Android/APIExample-Compose/gradle/wrapper/gradle-wrapper.properties +++ b/Android/APIExample-Compose/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Apr 10 23:59:46 CST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip +distributionUrl=https://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/Android/APIExample-Compose/settings.gradle.kts b/Android/APIExample-Compose/settings.gradle.kts index a29b84ff8..1bb6aff07 100644 --- a/Android/APIExample-Compose/settings.gradle.kts +++ b/Android/APIExample-Compose/settings.gradle.kts @@ -1,6 +1,5 @@ pluginManagement { repositories { - maven { url = uri("https://maven.aliyun.com/repository/public") } google { content { includeGroupByRegex("com\\.android.*") @@ -15,7 +14,6 @@ pluginManagement { dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { - maven { url = uri("https://maven.aliyun.com/repository/public") } google() mavenCentral() } diff --git a/Android/APIExample/cloud_build.sh b/Android/APIExample/cloud_build.sh index 61550d22d..67bc868a0 100755 --- a/Android/APIExample/cloud_build.sh +++ b/Android/APIExample/cloud_build.sh @@ -6,14 +6,31 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch ## use open jdk 17 SYSTEM=$(uname -s) if [ "$SYSTEM" = "Linux" ];then -if [ ! -d "/tmp/jdk-17.0.2" ];then - curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz - tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz - mv jdk-17.0.2 /tmp/ + if [ ! -d "/tmp/jdk-17.0.2" ];then + curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz + tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz + mv jdk-17.0.2 /tmp/ + fi + export JAVA_HOME=/tmp/jdk-17.0.2 + export ANDROID_HOME=/usr/lib/android_sdk +elif [ "$SYSTEM" = "Darwin" ];then + export JAVA_HOME=$(/usr/libexec/java_home -v 17) + export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk} fi -export JAVA_HOME=/tmp/jdk-17.0.2 + export PATH=$JAVA_HOME/bin:$PATH -java --version +java --version || { echo "Error: Failed to get Java version"; exit 1; } + +# Configure environment +if [ "$SYSTEM" = "Linux" ];then + [ -f ~/.bashrc ] && source ~/.bashrc +else + # Try to load zsh config first, if not found then try bash_profile + if [ -f ~/.zshrc ]; then + source ~/.zshrc + elif [ -f ~/.bash_profile ]; then + source ~/.bash_profile + fi fi #change android maven to china repos diff --git a/Android/APIExample/settings.gradle b/Android/APIExample/settings.gradle index dfb7230de..f10a7382c 100644 --- a/Android/APIExample/settings.gradle +++ b/Android/APIExample/settings.gradle @@ -1,6 +1,12 @@ pluginManagement { repositories { - google() + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } mavenCentral() gradlePluginPortal() } @@ -10,14 +16,13 @@ dependencyResolutionManagement { repositories { google() mavenCentral() - maven { url "https://jitpack.io" } maven { url 'http://maven.faceunity.com/repository/maven-public/' allowInsecureProtocol = true } } } -rootProject.name='APIExample' +rootProject.name = 'APIExample' include ':app' if (simpleFilter.toBoolean()) { include ':agora-simple-filter'