Skip to content

fix: only enable full scan when enable_full_scan is set explicitly forleast request lb #15676

fix: only enable full scan when enable_full_scan is set explicitly forleast request lb

fix: only enable full scan when enable_full_scan is set explicitly forleast request lb #15676

name: android_build
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.head_ref || github.run_id }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
env:
if: ${{ github.repository == 'envoyproxy/envoy' }}
uses: ./.github/workflows/_env.yml
permissions:
contents: read
pull-requests: read
androidbuild:
if: ${{ needs.env.outputs.mobile_android_build == 'true' }}
needs: env
permissions:
contents: read
packages: read
name: android_build
runs-on: ${{ needs.env.outputs.agent_ubuntu }}
timeout-minutes: 90
container:
image: ${{ needs.env.outputs.build_image_ubuntu_mobile }}
env:
CC: /opt/llvm/bin/clang
CXX: /opt/llvm/bin/clang++
steps:
- uses: actions/checkout@v4
- name: Add safe directory
run: git config --global --add safe.directory /__w/envoy/envoy
- name: 'Build envoy.aar distributable'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd mobile
./bazelw build \
--config=mobile-remote-release-clang \
--fat_apk_cpu=x86_64 \
--linkopt=-fuse-ld=lld \
//:android_dist
javahelloworld:
if: ${{ needs.env.outputs.mobile_android_build_all == 'true' }}
needs:
- env
- androidbuild
permissions:
contents: read
packages: read
name: java_helloworld
runs-on: envoy-x64-small
timeout-minutes: 50
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0
with:
java-version: '11'
java-package: jdk
architecture: x64
distribution: zulu
- name: 'Install dependencies'
run: |
cd mobile
./ci/linux_ci_setup.sh
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
- name: Enable KVM group permissions
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd
name: 'Start emulator'
with:
timeout_minutes: 15
max_attempts: 1
command: ./mobile/ci/start_android_emulator.sh
# Return to using:
# cd mobile && ./bazelw mobile-install --fat_apk_cpu=x86_64 --start_app //examples/java/hello_world:hello_envoy
# When https://github.com/envoyproxy/envoy-mobile/issues/853 is fixed.
- name: 'Start Java app'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd mobile
./bazelw build \
--config=mobile-remote-release-clang \
--fat_apk_cpu=x86_64 \
--linkopt=-fuse-ld=lld \
//examples/java/hello_world:hello_envoy
"${ANDROID_HOME}"/platform-tools/adb install -r --no-incremental bazel-bin/examples/java/hello_world/hello_envoy.apk
"${ANDROID_HOME}"/platform-tools/adb shell am start -n io.envoyproxy.envoymobile.helloenvoy/.MainActivity
- name: 'Check connectivity'
run: |
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat -e "received headers with status 301" -m 1 || {
echo "Failed checking for headers in adb logcat" >&2
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat || {
echo "Failed dumping adb logcat" >&2
}
exit 1
}
kotlinhelloworld:
if: ${{ needs.env.outputs.mobile_android_build == 'true' }}
needs:
- env
- androidbuild
permissions:
contents: read
packages: read
name: kotlin_helloworld
runs-on: envoy-x64-small
timeout-minutes: 50
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0
with:
java-version: '11'
java-package: jdk
architecture: x64
distribution: zulu
- name: 'Install dependencies'
run: |
cd mobile
./ci/linux_ci_setup.sh
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
- name: Enable KVM group permissions
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd
name: 'Start emulator'
with:
timeout_minutes: 15
max_attempts: 1
command: ./mobile/ci/start_android_emulator.sh
# Return to using:
# ./bazelw mobile-install --fat_apk_cpu=x86_64 --start_app //examples/kotlin/hello_world:hello_envoy_kt
# When https://github.com/envoyproxy/envoy-mobile/issues/853 is fixed.
- name: 'Start Kotlin app'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd mobile
./bazelw build \
--config=mobile-remote-release-clang \
--fat_apk_cpu=x86_64 \
--linkopt=-fuse-ld=lld \
//examples/kotlin/hello_world:hello_envoy_kt
"${ANDROID_HOME}"/platform-tools/adb install -r --no-incremental bazel-bin/examples/kotlin/hello_world/hello_envoy_kt.apk
"${ANDROID_HOME}"/platform-tools/adb shell am start -n io.envoyproxy.envoymobile.helloenvoykotlin/.MainActivity
- name: 'Check connectivity'
run: |
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat -e "received headers with status 200" -m 1 || {
echo "Failed checking for headers in adb logcat" >&2
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat || {
echo "Failed dumping adb logcat" >&2
}
exit 1
}
kotlinbaselineapp:
if: ${{ needs.env.outputs.mobile_android_build_all == 'true' }}
needs:
- env
- androidbuild
permissions:
contents: read
packages: read
name: kotlin_baseline_app
runs-on: envoy-x64-small
timeout-minutes: 50
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0
with:
java-version: '11'
java-package: jdk
architecture: x64
distribution: zulu
- name: 'Install dependencies'
run: |
cd mobile
./ci/linux_ci_setup.sh
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
- name: Enable KVM group permissions
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd
name: 'Start emulator'
with:
timeout_minutes: 15
max_attempts: 1
command: ./mobile/ci/start_android_emulator.sh
# Return to using:
# ./bazelw mobile-install --fat_apk_cpu=x86_64 --start_app //examples/kotlin/hello_world:hello_envoy_kt
# When https://github.com/envoyproxy/envoy-mobile/issues/853 is fixed.
- name: 'Start Kotlin app'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd mobile
./bazelw build \
--config=mobile-remote-release-clang \
--fat_apk_cpu=x86_64 \
--linkopt=-fuse-ld=lld \
//test/kotlin/apps/baseline:hello_envoy_kt
"${ANDROID_HOME}"/platform-tools/adb install -r --no-incremental bazel-bin/test/kotlin/apps/baseline/hello_envoy_kt.apk
"${ANDROID_HOME}"/platform-tools/adb shell am start -n io.envoyproxy.envoymobile.helloenvoybaselinetest/.MainActivity
- name: 'Check connectivity'
run: |
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat -e "received headers with status 301" -m 1 || {
echo "Failed checking for headers in adb logcat" >&2
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat || {
echo "Failed dumping adb logcat" >&2
}
exit 1
}
kotlinexperimentalapp:
if: ${{ needs.env.outputs.mobile_android_build_all == 'true' }}
needs:
- env
- androidbuild
permissions:
contents: read
packages: read
name: kotlin_experimental_app
runs-on: envoy-x64-small
timeout-minutes: 50
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0
with:
java-version: '11'
java-package: jdk
architecture: x64
distribution: zulu
- name: 'Install dependencies'
run: |
cd mobile
./ci/linux_ci_setup.sh
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
- name: Enable KVM group permissions
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd
name: 'Start emulator'
with:
timeout_minutes: 15
max_attempts: 1
command: ./mobile/ci/start_android_emulator.sh
# Return to using:
# ./bazelw mobile-install --fat_apk_cpu=x86_64 --start_app //examples/kotlin/hello_world:hello_envoy_kt
# When https://github.com/envoyproxy/envoy-mobile/issues/853 is fixed.
- name: 'Start Kotlin app'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd mobile
./bazelw build \
--config=mobile-remote-release-clang \
--fat_apk_cpu=x86_64 \
--linkopt=-fuse-ld=lld \
//test/kotlin/apps/experimental:hello_envoy_kt
"${ANDROID_HOME}"/platform-tools/adb install -r --no-incremental bazel-bin/test/kotlin/apps/experimental/hello_envoy_kt.apk
"${ANDROID_HOME}"/platform-tools/adb shell am start -n io.envoyproxy.envoymobile.helloenvoyexperimentaltest/.MainActivity
- name: 'Check connectivity'
run: |
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat -e "received headers with status 200" -m 1 || {
echo "Failed checking for headers in adb logcat" >&2
timeout 30 "${ANDROID_HOME}"/platform-tools/adb logcat || {
echo "Failed dumping adb logcat" >&2
}
exit 1
}