Testing with com.android.kotlin.multiplatform.library #6259
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: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" | |
jobs: | |
publish: | |
runs-on: ubuntu-latest | |
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- 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@v4 | |
- uses: gradle/actions/wrapper-validation@v4 | |
- name: Validate Renovate | |
uses: rinchsan/renovate-config-validator@v0.2.0 | |
with: | |
pattern: '.github/renovate.json' | |
checkjdk11: | |
permissions: | |
checks: write # for mikepenz/action-junit-report | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
distribution: 'graalvm' | |
java-version: 21 | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
cache: 'gradle' | |
native-image-job-reports: true | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew check -PgraalBuild=true | |
testopenjdk11: | |
permissions: | |
checks: write # for mikepenz/action-junit-report | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=11 | |
- name: Publish Test Report | |
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master' | |
uses: mikepenz/action-junit-report@v5 | |
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' | |
with: | |
files: | | |
**/build/test-results/*/TEST-*.xml | |
testzulu11: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=11 | |
testopenjdk8: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=8 | |
testopenjdk8alpn: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'jdkversions') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Old JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 8.0.242 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew okhttp:test -Dtest.java.version=8 -Dokhttp.platform=jdk8alpn -Dalpn.boot.version=8.1.13.v20181017 -Dorg.gradle.java.installations.paths=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.242-8.1/x64 | |
testopenjsse: | |
runs-on: ubuntu-latest | |
if: contains(github.event.pull_request.labels.*.name, 'providers') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew okhttp:test -Dtest.java.version=8 -Dokhttp.platform=openjsse | |
testconscrypt: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'conscrypt') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew okhttp:test -Dokhttp.platform=conscrypt | |
testbouncycastle: | |
runs-on: ubuntu-latest | |
if: contains(github.event.pull_request.labels.*.name, 'providers') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew okhttp:test -Dokhttp.platform=bouncycastle | |
testcorretto: | |
runs-on: ubuntu-latest | |
# TODO add master build after fixing all tests in CI | |
if: contains(github.event.pull_request.labels.*.name, 'providers') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew okhttp:test -Dokhttp.platform=corretto | |
testopenjdk17: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=17 | |
testopenjdk21: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 21 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=21 | |
testopenjdklatest: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDKs | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
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@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=24 | |
testopenjdkearlyaccess: | |
runs-on: ubuntu-latest | |
if: false # https://youtrack.jetbrains.com/issue/KTOR-8489 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
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@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dtest.java.version=25 | |
testwindows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Test | |
run: ./gradlew test | |
testgraal: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- uses: graalvm/setup-graalvm@v1 | |
with: | |
distribution: 'graalvm' | |
java-version: 24 | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
cache: 'gradle' | |
native-image-job-reports: true | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Build okcurl | |
run: ./gradlew okcurl:nativeBuild | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run native-image tests | |
run: ./gradlew -PgraalBuild=true native-image-tests:nativeTest | |
testandroid: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
api-level: | |
- 21 | |
- 29 | |
- 34 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Enable KVM group perms | |
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/ | |
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 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Gradle cache | |
run: ./gradlew :android-test:test | |
- name: AVD cache | |
uses: actions/cache@v4 | |
id: avd-cache | |
with: | |
path: | | |
~/.android/avd/* | |
~/.android/adb* | |
key: avd-${{ matrix.api-level }} | |
- name: Create AVD and generate snapshot for caching | |
if: steps.avd-cache.outputs.cache-hit != 'true' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
arch: ${{ matrix.api-level == '34' && 'x86_64' || 'x86' }} | |
force-avd-creation: false | |
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: false | |
script: echo "Generated AVD snapshot for caching." | |
- name: Run Tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
arch: ${{ matrix.api-level == '34' && 'x86_64' || 'x86' }} | |
script: ./gradlew :android-test:connectedCheck | |
env: | |
API_LEVEL: ${{ matrix.api-level }} | |
- name: Run Release Tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
arch: ${{ matrix.api-level == '34' && 'x86_64' || 'x86' }} | |
script: ./gradlew :android-test-app:connectedCheck | |
env: | |
API_LEVEL: ${{ matrix.api-level }} | |
- name: Build Release App | |
run: ./gradlew android-test-app:lint android-test-app:assembleRelease | |
testloom: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 24 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Checks | |
run: ./gradlew test -Dokhttp.platform=loom -Dtest.java.version=24 -PcontainerTests=true | |
testandroidregression: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
if: contains(github.event.pull_request.labels.*.name, 'android-regression') | |
strategy: | |
fail-fast: false | |
matrix: | |
api-level: | |
- 29 | |
- 34 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Enable KVM group perms | |
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/ | |
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 | |
- name: Gradle cache | |
uses: gradle/actions/setup-gradle@v4 | |
- name: AVD cache | |
uses: actions/cache@v4 | |
id: avd-cache | |
with: | |
path: | | |
~/.android/avd/* | |
~/.android/adb* | |
key: avd-${{ matrix.api-level }} | |
- name: Create AVD and generate snapshot for caching | |
if: steps.avd-cache.outputs.cache-hit != 'true' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
force-avd-creation: false | |
arch: ${{ matrix.api-level == '34' && 'x86_64' || 'x86' }} | |
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: false | |
script: echo "Generated AVD snapshot for caching." | |
- name: Run Tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api-level }} | |
arch: ${{ matrix.api-level == '34' && 'x86_64' || 'x86' }} | |
script: ./gradlew -PandroidBuild=true :regression-test:connectedCheck | |
env: | |
API_LEVEL: ${{ matrix.api-level }} | |
test_maven: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Publish local snapshot | |
run: ./gradlew publishToMavenLocal | |
- name: Run maven test | |
working-directory: ./maven-tests | |
run: ./mvnw -q verify |