From 704f0085e1c033285bd8ee0a12c77dd64b854b5b Mon Sep 17 00:00:00 2001 From: Chris Chestnut Date: Thu, 2 Apr 2026 17:16:51 +0000 Subject: [PATCH] automate version validation with prod test suite --- .../app-distribution-gradle-compatibility-tests.yml | 13 +++++++++++-- .../firebase-appdistribution-gradle.gradle | 2 ++ .../firebase/appdistribution/gradle/VersionUtils.kt | 0 .../gradle/BeePlusGradleProject.java | 7 ++++--- 4 files changed, 17 insertions(+), 5 deletions(-) rename firebase-appdistribution-gradle/src/{integrationTest => main}/java/com/google/firebase/appdistribution/gradle/VersionUtils.kt (100%) diff --git a/.github/workflows/app-distribution-gradle-compatibility-tests.yml b/.github/workflows/app-distribution-gradle-compatibility-tests.yml index 53b9f05b2e2..bbef2be85ad 100644 --- a/.github/workflows/app-distribution-gradle-compatibility-tests.yml +++ b/.github/workflows/app-distribution-gradle-compatibility-tests.yml @@ -20,21 +20,30 @@ jobs: java-version: 17 distribution: temurin cache: gradle + + - name: Setup local.properties for prodTest + run: | + echo "${{ secrets.INTEG_TESTS_FAD_GRADLE_PROD_TEST_PROPERTIES }}" > local.properties + - name: Add FAD service-credentials.json env: INTEG_TESTS_FAD_SERVICE_CREDENTIALS: ${{ secrets.INTEG_TESTS_FAD_SERVICE_CREDENTIALS }} if: env.INTEG_TESTS_FAD_SERVICE_CREDENTIALS != '' && env.INTEG_TESTS_FAD_SERVICE_CREDENTIALS != 'null' run: | echo $INTEG_TESTS_FAD_SERVICE_CREDENTIALS | base64 -d > firebase-appdistribution-gradle/service-credentials.json + - name: Run tests id: tests + env: + FIREBASE_TOKEN: ${{ secrets.INTEG_TESTS_FAD_FIREBASE_TOKEN }} run: | ./gradlew \ - :firebase-appdistribution-gradle:integrationTest + :firebase-appdistribution-gradle:integrationTest \ + :firebase-appdistribution-gradle:prodTest - name: Upload Test Report if: failure() uses: actions/upload-artifact@v4 with: name: integration-test-report - path: firebase-appdistribution-gradle/build/reports/tests/integrationTest/ + path: firebase-appdistribution-gradle/build/reports/tests/ diff --git a/firebase-appdistribution-gradle/firebase-appdistribution-gradle.gradle b/firebase-appdistribution-gradle/firebase-appdistribution-gradle.gradle index 804100f549f..ca833a376b6 100644 --- a/firebase-appdistribution-gradle/firebase-appdistribution-gradle.gradle +++ b/firebase-appdistribution-gradle/firebase-appdistribution-gradle.gradle @@ -225,6 +225,7 @@ dependencies { integrationTestImplementation(gradleApi()) integrationTestImplementation(gradleTestKit()) + integrationTestImplementation(sourceSets.main.output) integrationTestImplementation("com.android.tools.build:gradle:7.2.0") integrationTestImplementation(libs.junit) integrationTestImplementation("com.github.tomakehurst:wiremock:2.26.3") @@ -234,6 +235,7 @@ dependencies { prodTestImplementation(gradleApi()) prodTestImplementation(gradleTestKit()) + prodTestImplementation(sourceSets.main.output) prodTestImplementation("com.android.tools.build:gradle:7.2.0") prodTestImplementation(libs.junit) prodTestImplementation("com.github.tomakehurst:wiremock:2.26.3") diff --git a/firebase-appdistribution-gradle/src/integrationTest/java/com/google/firebase/appdistribution/gradle/VersionUtils.kt b/firebase-appdistribution-gradle/src/main/java/com/google/firebase/appdistribution/gradle/VersionUtils.kt similarity index 100% rename from firebase-appdistribution-gradle/src/integrationTest/java/com/google/firebase/appdistribution/gradle/VersionUtils.kt rename to firebase-appdistribution-gradle/src/main/java/com/google/firebase/appdistribution/gradle/VersionUtils.kt diff --git a/firebase-appdistribution-gradle/src/prodTest/java/com/google/firebase/appdistribution/gradle/BeePlusGradleProject.java b/firebase-appdistribution-gradle/src/prodTest/java/com/google/firebase/appdistribution/gradle/BeePlusGradleProject.java index c8970c1f1c5..2a59496da46 100644 --- a/firebase-appdistribution-gradle/src/prodTest/java/com/google/firebase/appdistribution/gradle/BeePlusGradleProject.java +++ b/firebase-appdistribution-gradle/src/prodTest/java/com/google/firebase/appdistribution/gradle/BeePlusGradleProject.java @@ -58,9 +58,10 @@ private static String getRequiredSystemProperty(String propertyName) { static final String PACKAGE_NAME = "com.firebase.appdistribution.prober"; // Also remember to update the latest AGP/gradle versions in UploadDistributionTaskTest.kt // firebase-appdistribution-gradle/src/integrationTest/java/com/google/firebase/appdistribution/gradle/UploadDistributionTaskTest.kt#L724-L726 - static final String LATEST_AGP_VERSION = "9.2.0-alpha02"; - static final String LATEST_GRADLE_VERSION = "9.4.1"; + static final String LATEST_AGP_VERSION = VersionUtils.INSTANCE.fetchLatestAgpVersion(); + static final String LATEST_GRADLE_VERSION = VersionUtils.INSTANCE.fetchLatestGradleVersion(); // The project number for App Distro Probes. We need to use this project + // because this is the one that's actually linked to play for BeePlus, // which is required for AAB uploads. private static final String PROJECT_NUMBER_SYSTEM_PROPERTY = "firebase.projectNumber"; @@ -184,7 +185,7 @@ public BuildResult runUploadAab() { private String getToken() { String token = System.getenv("FIREBASE_TOKEN"); - if (token == null || token.isEmpty()) { + if (isNullOrEmpty(token)) { throw new IllegalStateException( "FIREBASE_TOKEN environment variable not set. This is required for production tests."); }