@@ -163,46 +163,6 @@ jobs:
163163 aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
164164 ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }}
165165
166- linux-musl-arm :
167- runs-on : ubuntu-24.04
168- strategy :
169- fail-fast : false
170- matrix :
171- image :
172- - alpine-3.16-armv7
173- - alpine-3.16-arm64
174- steps :
175- - uses : aws-actions/configure-aws-credentials@v4
176- with :
177- role-to-assume : ${{ env.CRT_CI_ROLE }}
178- aws-region : ${{ env.AWS_DEFAULT_REGION }}
179- role-duration-seconds : 14400 # these tests run slow and easily reach default cred expiry, hence change expiry to 4hrs
180- - name : Install qemu/docker
181- run : docker run --privileged --rm tonistiigi/binfmt --install all
182- - name : Build ${{ env.PACKAGE_NAME }}
183- run : |
184- aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
185- ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }}
186-
187- raspberry :
188- runs-on : ubuntu-24.04 # latest
189- strategy :
190- fail-fast : false
191- matrix :
192- image :
193- - raspbian-bullseye
194- steps :
195- - uses : aws-actions/configure-aws-credentials@v4
196- with :
197- role-to-assume : ${{ env.CRT_CI_ROLE }}
198- aws-region : ${{ env.AWS_DEFAULT_REGION }}
199- - name : Install qemu/docker
200- run : docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7
201- - name : Build ${{ env.PACKAGE_NAME }}
202- run : |
203- aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
204- ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }}
205-
206166 windows :
207167 runs-on : windows-2025 # latest
208168 steps :
@@ -277,122 +237,6 @@ jobs:
277237 ./builder build -p ${{ env.PACKAGE_NAME }} --spec=downstream
278238 python3 codebuild/macos_compatibility_check.py
279239
280- android :
281- # ubuntu-24.04 comes with Android tooling
282- name : Android
283- runs-on : ubuntu-24.04 # latest
284- steps :
285- - uses : aws-actions/configure-aws-credentials@v4
286- with :
287- role-to-assume : ${{ env.CRT_CI_ROLE }}
288- aws-region : ${{ env.AWS_DEFAULT_REGION }}
289- - name : Checkout Sources
290- uses : actions/checkout@v4
291- with :
292- submodules : true
293- # Setup JDK 17
294- - name : set up JDK 17
295- uses : actions/setup-java@v4
296- with :
297- java-version : ' 17'
298- distribution : ' temurin'
299- # Ensure Gradle uses this JDK (important when toolchains are present)
300- - name : Point Gradle at JDK 17
301- run : echo "ORG_GRADLE_JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
302-
303- - name : Mirror ANDROID_HOME → ANDROID_SDK_ROOT
304- run : echo "ANDROID_SDK_ROOT=$ANDROID_HOME" >> "$GITHUB_ENV"
305-
306- # Install required Android components & accept licenses (NDK r28 + compileSdk 35)
307- - name : Install Android SDK packages
308- shell : bash
309- run : |
310- set -euo pipefail
311- SDKROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}"
312- SDKMANAGER="$SDKROOT/cmdline-tools/latest/bin/sdkmanager"
313-
314- # Some images have cmdline-tools already; ensure path exists
315- if [[ ! -x "$SDKMANAGER" ]]; then
316- echo "cmdline-tools not found; installing…"
317- mkdir -p "$SDKROOT/cmdline-tools"
318- curl -sSL -o /tmp/clt.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
319- sudo unzip -q /tmp/clt.zip -d "$SDKROOT/cmdline-tools"
320- sudo mv "$SDKROOT/cmdline-tools/cmdline-tools" "$SDKROOT/cmdline-tools/latest"
321- SDKMANAGER="$SDKROOT/cmdline-tools/latest/bin/sdkmanager"
322- fi
323-
324- echo "Installing platform-tools, Build-Tools 35, platform android-35, NDK r28, and CMake…"
325- # Avoid 'yes' SIGPIPE killing the step: turn off pipefail just for these lines
326- set +o pipefail
327- yes | sudo "$SDKMANAGER" --install \
328- "platform-tools" \
329- "build-tools;35.0.0" \
330- "platforms;android-35" \
331- "ndk;28.0.12433566" \
332- "cmake;3.22.1"
333-
334- yes | "$SDKMANAGER" --licenses
335- set -o pipefail
336-
337- # Quick sanity prints (non-fatal)
338- "$SDKROOT/ndk/28.0.12433566/ndk-build" -v >/dev/null 2>&1 || true
339- "$SDKMANAGER" --list | sed -n '1,80p' || true
340-
341- # Build and publish locally for the test app to find the SNAPSHOT version
342- - name : Build ${{ env.PACKAGE_NAME }}
343- run : |
344- # Manually set -Xmx (max heap size) to something huge (tested 2g and that works, but why not go bigger).
345- # Only in CI, gradle daemon runs out of memory during "lintAnalyzeDebug" task, unless you specify it this way.
346- # You'd think Java's default of 25% RAM (ubuntu24 runner has 12g, so max 4g) would be sufficient, but no.
347- # You'd think setting -Xmx via gradle.properties would help, but no.
348- ./gradlew :android:crt:build -Dorg.gradle.jvmargs="-Xmx8g"
349- ./gradlew -PnewVersion="1.0.0-SNAPSHOT" :android:crt:publishToMavenLocal
350- # Setup files required by test app for Device Farm testing
351- - name : Setup Android Test Files
352- run : |
353- cd src/test/android/testapp/src/main/assets
354- python3 -m pip install boto3
355- python3 ./android_file_creation.py
356-
357- - name : Set Android keystore home
358- run : |
359- echo "ANDROID_SDK_HOME=$GITHUB_WORKSPACE/.android-home" >> "$GITHUB_ENV"
360- echo "ANDROID_PREFS_ROOT=$GITHUB_WORKSPACE/.android-home" >> "$GITHUB_ENV"
361- mkdir -p "$GITHUB_WORKSPACE/.android-home/.android"
362-
363- - name : Create debug keystore
364- run : |
365- keytool -genkeypair \
366- -keystore "$ANDROID_SDK_HOME/.android/debug.keystore" \
367- -storepass android -keypass android \
368- -alias androiddebugkey \
369- -dname "CN=Android Debug,O=Android,C=US" \
370- -keyalg RSA -keysize 2048 -validity 14000
371-
372- - name : Build Test App
373- run : |
374- cd src/test/android/testapp
375- ../../../../gradlew assembledebug
376- ../../../../gradlew assembleAndroidTest
377- - name : Device Farm Tests Highly Available
378- run : |
379- echo "Running Device Farm Python Script"
380- python3 ./.github/workflows/run_android_ci.py \
381- --run_id ${{ github.run_id }} \
382- --run_attempt ${{ github.run_attempt }} \
383- --project_arn $(aws secretsmanager get-secret-value --region us-east-1 --secret-id "ci/DeviceFarm/ProjectArn" --query "SecretString" | cut -f5 -d\" | cut -f1 -d'\') \
384- --device_pool_arn $(aws secretsmanager get-secret-value --region us-east-1 --secret-id "ci/DeviceFarm/DevicePoolArn" --query "SecretString" | cut -f5 -d\" | cut -f1 -d'\') \
385- --device_pool highly_available
386- - name : Device Farm Tests Android 8.0.0
387- run : |
388- echo "Running Device Farm Python Script"
389- python3 ./.github/workflows/run_android_ci.py \
390- --run_id ${{ github.run_id }} \
391- --run_attempt ${{ github.run_attempt }} \
392- --project_arn $(aws secretsmanager get-secret-value --region us-east-1 --secret-id "ci/DeviceFarm/ProjectArn" --query "SecretString" | cut -f5 -d\" | cut -f1 -d'\') \
393- --device_pool_arn $(aws secretsmanager get-secret-value --region us-east-1 --secret-id "ci/DeviceFarm/DevicePoolArnAndroid8" --query "SecretString" | cut -f5 -d\" | cut -f1 -d'\') \
394- --device_pool android_8
395-
396240 # check that docs can still build
397241 check-docs :
398242 runs-on : ubuntu-22.04 # use same version as docs.yml
0 commit comments