Switch Android tests to emulator.wtf with OIDC auth #7531
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |