Skip to content

Switch Android tests to emulator.wtf with OIDC auth #7531

Switch Android tests to emulator.wtf with OIDC auth

Switch Android tests to emulator.wtf with OIDC auth #7531

Workflow file for this run

name: build
on:
push:
branches:
- master
pull_request:
types: [opened, labeled, unlabeled, synchronize]
permissions:
contents: read
env:
GRADLE_OPTS: "-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
publish:
runs-on: ubuntu-latest
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Upload Artifacts
run: ./gradlew clean publish --stacktrace
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SECRET_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SECRET_PASSPHRASE }}
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: gradle/actions/wrapper-validation@v5
- name: Validate Renovate
uses: rinchsan/renovate-config-validator@v0.2.0
with:
pattern: '.github/renovate.json'
checks:
permissions:
checks: write # for mikepenz/action-junit-report
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
11
21
- uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm'
java-version: 25
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: true
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Checks
run: ./gradlew check -PgraalBuild=true -x jvmTest -x test -x allTests -x java9Test
jvm:
permissions:
checks: write # for mikepenz/action-junit-report
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java-version:
- 8
- 11
- 17
- 21
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
${{ matrix.java-version }}
21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Ptest.java.version=${{ matrix.java-version }}
- name: Publish Test Report
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master' && matrix.java-version == '11'
uses: mikepenz/action-junit-report@v6
with:
report_paths: '**/build/test-results/*/TEST-*.xml'
check_name: OpenJDK 11 Test Report
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master' && matrix.java-version == '11'
with:
files: |
**/build/test-results/*/TEST-*.xml
openjdk8alpn:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'jdkversions')
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install Old JDK 8
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 8.0.242
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Ptest.java.version=8 -Pokhttp.platform=jdk8alpn -Palpn.boot.version=8.1.13.v20181017 -Dorg.gradle.java.installations.paths=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.242-8.1/x64
providers:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'providers')
strategy:
matrix:
include:
- provider: openjsse
java-version: 8
- provider: bouncycastle
java-version: 21
- provider: corretto
java-version: 21
- provider: conscrypt
java-version: 21
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
${{ matrix.java-version }}
21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Pokhttp.platform=${{ matrix.provider }} -Ptest.java.version=${{ matrix.java-version }}
openjdklatest:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDKs
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
11
17
24
- name: Allow incompatible JVM versions
run: |
echo 'kotlin.jvm.target.validation.mode=ignore' >> ./gradle.properties
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Ptest.java.version=24
openjdkearlyaccess:
runs-on: ubuntu-latest
if: false # https://youtrack.jetbrains.com/issue/KTOR-8489
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
11
17
25-ea
- name: Allow incompatible JVM versions
run: |
echo 'kotlin.jvm.target.validation.mode=ignore' >> ./gradle.properties
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Ptest.java.version=25
testwindows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests
graal:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm'
java-version: 25
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: true
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Build okcurl
run: ./gradlew okcurl:nativeBuild
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run native-image tests
run: ./gradlew -PgraalBuild=true native-image-tests:nativeTest
android:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
id-token: write
strategy:
fail-fast: false
matrix:
api-level:
- 21
- 23
- 29
- 34
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Build Android APKs
run: >
./gradlew -PandroidBuild=true
:android-test:assembleDebugAndroidTest
:android-test-app:assembleDebug
:android-test-app:assembleDebugAndroidTest
:regression-test:assembleDebugAndroidTest
- name: Configure emulator.wtf credentials
uses: emulator-wtf/configure-credentials@v1
with:
oidc-configuration-id: # TODO: add OIDC configuration ID from emulator.wtf
- name: Run android-test instrumented tests
uses: emulator-wtf/run-tests@v0
with:
test: android-test/build/outputs/apk/androidTest/debug/android-test-debug-androidTest.apk
devices: version=${{ matrix.api-level }}
outputs-dir: build/test-results/android-test
- name: Run android-test-app instrumented tests
uses: emulator-wtf/run-tests@v0
with:
app: android-test-app/build/outputs/apk/debug/android-test-app-debug.apk
test: android-test-app/build/outputs/apk/androidTest/debug/android-test-app-debug-androidTest.apk
devices: version=${{ matrix.api-level }}
outputs-dir: build/test-results/android-test-app
- name: Run regression-test instrumented tests
uses: emulator-wtf/run-tests@v0
with:
test: regression-test/build/outputs/apk/androidTest/debug/regression-test-debug-androidTest.apk
devices: version=${{ matrix.api-level }}
outputs-dir: build/test-results/regression-test
- name: Build Release App
run: ./gradlew android-test-app:lint android-test-app:assembleRelease
loom:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: |
21
24
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Run Tests
run: ./gradlew test allTests -Pokhttp.platform=loom -Ptest.java.version=24 -PcontainerTests=true
maven:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Publish local snapshot
run: ./gradlew publishToMavenLocal
- name: Run maven test
working-directory: ./maven-tests
run: ./mvnw -q verify
java9_modules:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Configure JDK
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 24
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Test module-tests
run: ./gradlew module-tests:test -PokhttpModuleTests=true
- name: Run with Jlink
run: ./gradlew module-tests:imageRun -PokhttpModuleTests=true