Skip to content

Commit a60ef28

Browse files
authored
Merge pull request #454 from AgoraIO/dev/android_ci
Dev/android ci
2 parents f37314c + 08be537 commit a60ef28

File tree

10 files changed

+110
-44
lines changed

10 files changed

+110
-44
lines changed

.github/ci/build/build_android.groovy

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ buildUtils = new agora.build.BuildUtils()
77

88
compileConfig = [
99
"sourceDir": "api-examples",
10-
"docker": "hub.agoralab.co/server/apiexample_build_android:latest",
1110
"non-publish": [
1211
"command": "./.github/ci/build/build_android.sh",
1312
"extraArgs": "",
@@ -64,4 +63,4 @@ def doPublish(buildVariables) {
6463
sh "rm -rf *.zip *.apk || true"
6564
}
6665

67-
pipelineLoad(this, "ApiExample", "build", "android", "apiexample_linux")
66+
pipelineLoad(this, "ApiExample", "build", "android", "RTC-Sample")

.github/ci/build/build_android.sh

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
# pr: output test.zip to workspace dir
3838
# others: Rename the zip package name yourself, But need copy it to workspace dir
3939
##################################
40+
export PATH=$PATH:/opt/homebrew/bin
4041

4142
echo Package_Publish: $Package_Publish
4243
echo is_tag_fetch: $is_tag_fetch
@@ -68,22 +69,29 @@ else
6869

6970
rm -rf ./$unzip_name/rtc/bin
7071
rm -rf ./$unzip_name/rtc/demo
71-
rm ./$unzip_name/rtc/commits
72-
rm ./$unzip_name/rtc/package_size_report.txt
72+
rm -f ./$unzip_name/.commits
73+
rm -f ./$unzip_name/spec
7374
rm -rf ./$unzip_name/pom
7475
fi
75-
mkdir -p ./$unzip_name/rtc/samples
76-
cp -rf ./Android/${android_direction} ./$unzip_name/rtc/samples/API-Example || exit 1
76+
77+
mkdir -p ./$unzip_name/rtc/samples/API-Example || exit 1
78+
79+
if [ -d "./Android/${android_direction}" ]; then
80+
cp -rf ./Android/${android_direction}/* ./$unzip_name/rtc/samples/API-Example/ || exit 1
81+
else
82+
echo "Error: Source directory ./Android/${android_direction} does not exist"
83+
exit 1
84+
fi
85+
7786
7za a -tzip result.zip -r $unzip_name > log.txt
7887
mv result.zip $WORKSPACE/withAPIExample_${BUILD_NUMBER}_$zip_name
7988

89+
if [ $compress_apiexample = true ]; then
90+
7za a -tzip result_onlyAPIExample.zip -r ./$unzip_name/rtc/samples/API-Example >> log.txt
91+
mv result_onlyAPIExample.zip $WORKSPACE/onlyAPIExample_${BUILD_NUMBER}_$zip_name
92+
fi
93+
8094
if [ $compile_project = true ]; then
81-
# install android sdk
82-
which java
83-
java --version
84-
source ~/.bashrc
85-
export ANDROID_HOME=/usr/lib/android_sdk
86-
echo ANDROID_HOME: $ANDROID_HOME
8795
cd ./$unzip_name/rtc/samples/API-Example || exit 1
8896
if [ -z "$sdk_url" ] || [ "$sdk_url" = "none" ]; then
8997
./cloud_build.sh false || exit 1
@@ -92,4 +100,3 @@ if [ $compile_project = true ]; then
92100
fi
93101
fi
94102

95-

Android/APIExample-Audio/cloud_build.sh

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,31 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch
66
## use open jdk 17
77
SYSTEM=$(uname -s)
88
if [ "$SYSTEM" = "Linux" ];then
9-
if [ ! -d "/tmp/jdk-17.0.2" ];then
10-
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11-
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12-
mv jdk-17.0.2 /tmp/
9+
if [ ! -d "/tmp/jdk-17.0.2" ];then
10+
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11+
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12+
mv jdk-17.0.2 /tmp/
13+
fi
14+
export JAVA_HOME=/tmp/jdk-17.0.2
15+
export ANDROID_HOME=/usr/lib/android_sdk
16+
elif [ "$SYSTEM" = "Darwin" ];then
17+
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
18+
export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk}
1319
fi
14-
export JAVA_HOME=/tmp/jdk-17.0.2
20+
1521
export PATH=$JAVA_HOME/bin:$PATH
16-
java --version
22+
java --version || { echo "Error: Failed to get Java version"; exit 1; }
23+
24+
# Configure environment
25+
if [ "$SYSTEM" = "Linux" ];then
26+
[ -f ~/.bashrc ] && source ~/.bashrc
27+
else
28+
# Try to load zsh config first, if not found then try bash_profile
29+
if [ -f ~/.zshrc ]; then
30+
source ~/.zshrc
31+
elif [ -f ~/.bash_profile ]; then
32+
source ~/.bash_profile
33+
fi
1734
fi
1835

1936
#change android maven to china repos

Android/APIExample-Audio/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip
6+
distributionUrl=https://services.gradle.org/distributions/gradle-8.7-bin.zip
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
pluginManagement {
22
repositories {
3-
maven { url "https://maven.aliyun.com/repository/public" }
4-
google()
3+
google {
4+
content {
5+
includeGroupByRegex("com\\.android.*")
6+
includeGroupByRegex("com\\.google.*")
7+
includeGroupByRegex("androidx.*")
8+
}
9+
}
510
mavenCentral()
611
gradlePluginPortal()
712
}
813
}
914
dependencyResolutionManagement {
1015
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
1116
repositories {
12-
maven { url "https://maven.aliyun.com/repository/public" }
1317
google()
1418
mavenCentral()
15-
maven { url "https://jitpack.io" }
16-
maven { url "https://maven.aliyun.com/repository/public" }
1719
}
1820
}
19-
rootProject.name='APIExample-Audio'
21+
rootProject.name = 'APIExample-Audio'
2022
include ':app'

Android/APIExample-Compose/cloud_build.sh

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,37 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch
66
## use open jdk 17
77
SYSTEM=$(uname -s)
88
if [ "$SYSTEM" = "Linux" ];then
9-
if [ ! -d "/tmp/jdk-17.0.2" ];then
10-
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11-
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12-
mv jdk-17.0.2 /tmp/
9+
if [ ! -d "/tmp/jdk-17.0.2" ];then
10+
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11+
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12+
mv jdk-17.0.2 /tmp/
13+
fi
14+
export JAVA_HOME=/tmp/jdk-17.0.2
15+
export ANDROID_HOME=/usr/lib/android_sdk
16+
elif [ "$SYSTEM" = "Darwin" ];then
17+
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
18+
export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk}
1319
fi
14-
export JAVA_HOME=/tmp/jdk-17.0.2
20+
1521
export PATH=$JAVA_HOME/bin:$PATH
16-
java --version
22+
java --version || { echo "Error: Failed to get Java version"; exit 1; }
23+
24+
# Configure environment
25+
if [ "$SYSTEM" = "Linux" ];then
26+
[ -f ~/.bashrc ] && source ~/.bashrc
27+
else
28+
# Try to load zsh config first, if not found then try bash_profile
29+
if [ -f ~/.zshrc ]; then
30+
source ~/.zshrc
31+
elif [ -f ~/.bash_profile ]; then
32+
source ~/.bash_profile
33+
fi
1734
fi
1835

36+
#change android maven to china repos
37+
sed -ie "s#google()#maven { url \"https\://maven.aliyun.com/repository/public\" }\n google()#g" settings.gradle
38+
sed -ie "s#https://services.gradle.org/distributions#https://mirrors.cloud.tencent.com/gradle#g" gradle/wrapper/gradle-wrapper.properties
39+
1940
## config appId
2041
if [ ! -f "local.properties" ];then
2142
touch local.properties
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Wed Apr 10 23:59:46 CST 2024
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip
4+
distributionUrl=https://services.gradle.org/distributions/gradle-8.7-bin.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

Android/APIExample-Compose/settings.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
pluginManagement {
22
repositories {
3-
maven { url = uri("https://maven.aliyun.com/repository/public") }
43
google {
54
content {
65
includeGroupByRegex("com\\.android.*")
@@ -15,7 +14,6 @@ pluginManagement {
1514
dependencyResolutionManagement {
1615
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
1716
repositories {
18-
maven { url = uri("https://maven.aliyun.com/repository/public") }
1917
google()
2018
mavenCentral()
2119
}

Android/APIExample/cloud_build.sh

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,31 @@ ls ~/.gradle || (mkdir -p /tmp/.gradle && ln -s /tmp/.gradle ~/.gradle && touch
66
## use open jdk 17
77
SYSTEM=$(uname -s)
88
if [ "$SYSTEM" = "Linux" ];then
9-
if [ ! -d "/tmp/jdk-17.0.2" ];then
10-
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11-
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12-
mv jdk-17.0.2 /tmp/
9+
if [ ! -d "/tmp/jdk-17.0.2" ];then
10+
curl -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
11+
tar zxf openjdk-17.0.2_linux-x64_bin.tar.gz
12+
mv jdk-17.0.2 /tmp/
13+
fi
14+
export JAVA_HOME=/tmp/jdk-17.0.2
15+
export ANDROID_HOME=/usr/lib/android_sdk
16+
elif [ "$SYSTEM" = "Darwin" ];then
17+
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
18+
export ANDROID_HOME=${ANDROID_HOME:-$HOME/Library/Android/sdk}
1319
fi
14-
export JAVA_HOME=/tmp/jdk-17.0.2
20+
1521
export PATH=$JAVA_HOME/bin:$PATH
16-
java --version
22+
java --version || { echo "Error: Failed to get Java version"; exit 1; }
23+
24+
# Configure environment
25+
if [ "$SYSTEM" = "Linux" ];then
26+
[ -f ~/.bashrc ] && source ~/.bashrc
27+
else
28+
# Try to load zsh config first, if not found then try bash_profile
29+
if [ -f ~/.zshrc ]; then
30+
source ~/.zshrc
31+
elif [ -f ~/.bash_profile ]; then
32+
source ~/.bash_profile
33+
fi
1734
fi
1835

1936
#change android maven to china repos

Android/APIExample/settings.gradle

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
pluginManagement {
22
repositories {
3-
google()
3+
google {
4+
content {
5+
includeGroupByRegex("com\\.android.*")
6+
includeGroupByRegex("com\\.google.*")
7+
includeGroupByRegex("androidx.*")
8+
}
9+
}
410
mavenCentral()
511
gradlePluginPortal()
612
}
@@ -10,14 +16,13 @@ dependencyResolutionManagement {
1016
repositories {
1117
google()
1218
mavenCentral()
13-
maven { url "https://jitpack.io" }
1419
maven {
1520
url 'http://maven.faceunity.com/repository/maven-public/'
1621
allowInsecureProtocol = true
1722
}
1823
}
1924
}
20-
rootProject.name='APIExample'
25+
rootProject.name = 'APIExample'
2126
include ':app'
2227
if (simpleFilter.toBoolean()) {
2328
include ':agora-simple-filter'

0 commit comments

Comments
 (0)