Skip to content

Commit 0da91fe

Browse files
authored
ci(dataconnect): use dataconnect:compile to generate SDKs in CI (#2766)
This should update our CI pipeline to install the Firebase CLI and run `firebase dataconnect:compile` to generate the SDKs for the Data Connect quickstart
1 parent 519fa26 commit 0da91fe

8 files changed

Lines changed: 32 additions & 18 deletions

File tree

.github/workflows/android.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ jobs:
1919
with:
2020
distribution: 'zulu'
2121
java-version: 17
22+
- name: Install Node to use the Firebase CLI
23+
uses: actions/setup-node@v6
24+
with:
25+
node-version: 24
2226
- name: Setup Gradle
2327
uses: gradle/gradle-build-action@v2
2428
- name: Check Snippets
2529
run: python scripts/checksnippets.py
26-
# TODO(thatfiredev): remove this once github.com/firebase/quickstart-android/issues/1672 is fixed
27-
- name: Remove Firebase Data Connect from CI
28-
run: python scripts/ci_remove_fdc.py
2930
- name: Copy mock google_services.json
3031
run: ./copy_mock_google_services_json.sh
3132
- name: Build with Gradle (Pull Request)

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ tasks.register<JavaExec>("ktlintCheck") {
4848
"--code-style=android_studio",
4949
"--reporter=plain",
5050
"--reporter=checkstyle,output=${outputFile}",
51-
"**/*.kt"
51+
"**/*.kt",
52+
"!**/build/**"
5253
)
5354

5455
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")

dataconnect/app/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ android {
4747
}
4848
}
4949
sourceSets.getByName("main") {
50-
java.srcDirs("build/generated/sources")
50+
kotlin.directories.add("build/generated/sources")
5151
}
5252
}
5353

@@ -62,6 +62,7 @@ dependencies {
6262
implementation(libs.androidx.ui.graphics)
6363
implementation(libs.androidx.ui.tooling.preview)
6464
implementation(libs.androidx.material3)
65+
implementation(libs.compose.material.icons)
6566
implementation(libs.compose.navigation)
6667
implementation(libs.androidx.lifecycle.runtime.compose.android)
6768
implementation(libs.coil.compose)

dataconnect/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,20 @@ plugins {
44
alias(libs.plugins.google.services) apply false
55
alias(libs.plugins.compose.compiler) apply false
66
}
7+
8+
tasks {
9+
register<Exec>("dataconnectCompile") {
10+
workingDir = project.file("./dataconnect")
11+
if (org.apache.tools.ant.taskdefs.condition.Os.isFamily(org.apache.tools.ant.taskdefs.condition.Os.FAMILY_WINDOWS)) {
12+
commandLine("npx.cmd", "-y", "firebase-tools@latest", "dataconnect:compile")
13+
} else {
14+
commandLine("npx", "-y", "firebase-tools@latest", "dataconnect:compile")
15+
}
16+
isIgnoreExitValue = true
17+
}
18+
19+
register("clean", Delete::class) {
20+
delete(rootProject.layout.buildDirectory)
21+
finalizedBy("dataconnectCompile")
22+
}
23+
}

dataconnect/dataconnect/movie-connector/connector.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ generate:
1010
package: com.google.firebase.dataconnect.movies
1111
# Specify where to store the generated SDK
1212
# We're using the build/ directory so that generated code doesn't get checked into git
13-
outputDir: ../../app/build/generated/sources/com/google/firebase/dataconnect/movies
13+
outputDir: ../../app/build/generated/sources

dataconnect/dataconnect/movie-connector/queries.gql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# List subset of fields for movies
2-
query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirection, $limit: Int) @auth(level: PUBLIC) {
2+
query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirection, $limit: Int) @auth(level: PUBLIC, insecureReason: "Test Mode") {
33
movies(
44
orderBy: [
55
{ rating: $orderByRating },
@@ -19,7 +19,7 @@ query ListMovies($orderByRating: OrderDirection, $orderByReleaseYear: OrderDirec
1919
}
2020

2121
# Get movie by id
22-
query GetMovieById($id: UUID!) @auth(level: PUBLIC) {
22+
query GetMovieById($id: UUID!) @auth(level: PUBLIC, insecureReason: "Test Mode") {
2323
movie(id: $id) {
2424
id
2525
title
@@ -58,7 +58,7 @@ query GetMovieById($id: UUID!) @auth(level: PUBLIC) {
5858
}
5959

6060
# Get actor by id
61-
query GetActorById($id: UUID!) @auth(level: PUBLIC) {
61+
query GetActorById($id: UUID!) @auth(level: PUBLIC, insecureReason: "Test Mode") {
6262
actor(id: $id) {
6363
id
6464
name
@@ -130,7 +130,7 @@ query SearchAll(
130130
$minRating: Float!
131131
$maxRating: Float!
132132
$genre: String!
133-
) @auth(level: PUBLIC) {
133+
) @auth(level: PUBLIC, insecureReason: "Test Mode") {
134134
moviesMatchingTitle: movies(
135135
where: {
136136
_and: [

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ kotlin = "2.3.0"
1919
kotlinxSerializationCore = "1.9.0"
2020
lifecycle = "2.10.0"
2121
material = "1.13.0"
22+
materialIcons = "1.7.8"
2223
webkit = "1.14.0"
2324

2425
[libraries]
@@ -58,6 +59,7 @@ junit = { group = "junit", name = "junit", version.ref = "junit" }
5859
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerializationCore" }
5960
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationCore" }
6061
material = { module = "com.google.android.material:material", version.ref = "material" }
62+
compose-material-icons = { group = "androidx.compose.material", name = "material-icons-core", version.ref = "materialIcons"}
6163

6264
[plugins]
6365
android-application = { id = "com.android.application", version.ref = "agp" }

scripts/ci_remove_fdc.py

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)