Skip to content

Rebase main #6709

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 41 commits into from
Feb 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e3dd809
Cleanup root build files (#6606)
daymxn Dec 18, 2024
49a637f
fix(firebase-perf): Update device cache only if RC value is different…
exaby73 Dec 19, 2024
c7eb32a
Migrate to composite plugin (#6608)
daymxn Dec 19, 2024
320a3ed
Adjust Functions Kotlin docs for release (#6449)
emilypgoogle Dec 27, 2024
f024090
Firestore: update javadocs of Exclude, PropertyName, and ServerTimest…
dconeybe Jan 3, 2025
b5dbd0a
Add custom signals support in Remote Config. (#6539)
tusharkhandelwal8 Jan 8, 2025
a1cbf93
FIX: sort strings in UTF-8 encoded byte order (#6615)
milaGGL Jan 15, 2025
8e61ec2
dataconnect: DataConnectExecutableVersions.json updated with version …
dconeybe Jan 17, 2025
cf5fe2e
Update code formatting command in vertex's README (#6637)
rlazo Jan 20, 2025
377edcc
dataconnect: integration tests added to github actions workflows (#6638)
dconeybe Jan 23, 2025
0ce193f
Refactor Vendor Plugin (#6640)
daymxn Jan 24, 2025
8567a38
Remove preview notice from vertexai readme (#6646)
rlazo Jan 27, 2025
3f23c5f
Update fdl readme (#6649)
rlazo Jan 28, 2025
b17d041
Implement GMavenService (#6644)
daymxn Jan 28, 2025
65b23aa
Drop empty text parts when parsing the model's response (#6652)
rlazo Jan 28, 2025
f2d05d6
Update the vertex golden file version being pulled (#6651)
rlazo Jan 29, 2025
31e0d06
Migrate VertexAI serialization to be localized (#6631)
emilypgoogle Jan 29, 2025
0fac9bf
Add missing changelog (#6654)
daymxn Jan 29, 2025
9bdd821
Update core-ktx version (#6656)
daymxn Jan 30, 2025
e54e328
m158 mergeback (#6657)
google-oss-bot Jan 30, 2025
9a1550f
Update create pull request version (#6663)
emilypgoogle Feb 3, 2025
59839ee
Update changelogs for m150 (#6672)
daymxn Feb 4, 2025
b06d0d7
dataconnect.yml: ensure that test logs are uploaded even when the tes…
dconeybe Feb 5, 2025
92f448f
Update Metalava and api.txt files (#6671)
emilypgoogle Feb 5, 2025
b8803fc
Refactor bom generation (#6675)
daymxn Feb 5, 2025
f98c035
Fix ModuleVersion bumping (#6679)
daymxn Feb 6, 2025
b4ff466
m159 mergeback (#6680)
google-oss-bot Feb 7, 2025
6a8301b
dataconnect: DataConnectExecutableVersions.json updated with versions…
dconeybe Feb 7, 2025
dedff68
dataconnect.yaml: improve readability of the output of the "tool vers…
dconeybe Feb 7, 2025
336cf32
dataconnect: fix cache key conflict on nighty integration tests runs …
dconeybe Feb 7, 2025
d9baf9e
Add support for token-based usage metrics (#6658)
rlazo Feb 8, 2025
301d37a
Add support for new FinishReason and BlockReason values (#6685)
davidmotson Feb 10, 2025
f80ba89
Fix deprecated message in KeyValueBuilder to render properly (#6691)
mrober Feb 10, 2025
f6b59f6
Add functions changelog (#6694)
emilypgoogle Feb 11, 2025
2d1905e
Make token count details fields non-nullable (#6695)
rlazo Feb 11, 2025
caed74c
dataconnect: fix generation of invalid timestamp values in internal t…
dconeybe Feb 12, 2025
263fbc0
dataconnect: improve cache restoration in github actions workflow (#6…
dconeybe Feb 12, 2025
de93104
Make AQS resilient to background init in multi-process apps (#6699)
mrober Feb 13, 2025
ed5621e
Followup to #6699 (#6701)
mrober Feb 13, 2025
e125fb7
docs: update ImagePart refdocs (#6681)
thatfiredev Feb 17, 2025
95bbf92
Initial implementation to API spec (#6607)
davidmotson Feb 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/ci_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ jobs:
module: ${{ fromJSON(needs.determine_changed.outputs.modules) }}
exclude:
- module: :firebase-firestore
- module: :firebase-functions:ktx

steps:
- uses: actions/checkout@v4.1.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create_releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
./gradlew generateReleaseConfig -PcurrentRelease=${{ inputs.name }} -PpastRelease=${{ inputs.past-name }} -PprintOutput=true

- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f
with:
base: 'releases/${{ inputs.name }}'
branch: 'releases/${{ inputs.name }}.release'
Expand Down
238 changes: 238 additions & 0 deletions .github/workflows/dataconnect.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
name: Data Connect Integration Tests

Check failure

Code scanning / Scorecard

Token-Permissions High

score is 0: no topLevel permission defined
Remediation tip: Visit https://app.stepsecurity.io/secureworkflow.
Tick the 'Restrict permissions for GITHUB_TOKEN'
Untick other options
NOTE: If you want to resolve multiple issues at once, you can visit https://app.stepsecurity.io/securerepo instead.
Click Remediation section below for further remediation help

on:
workflow_dispatch:
inputs:
javaVersion:
androidEmulatorApiLevel:
nodeJsVersion:
firebaseToolsVersion:
gradleInfoLog:
type: boolean
pull_request:
paths:
- .github/workflows/dataconnect.yml
- 'firebase-dataconnect/**'
- '!firebase-dataconnect/demo/**'
- '!firebase-dataconnect/scripts/**'
- '!firebase-dataconnect/**/*.md'
- '!firebase-dataconnect/**/*.txt'
schedule:
- cron: '0 11 * * *' # Run nightly at 11am UTC (3am Pacific, 6am Eastern)

env:
FDC_JAVA_VERSION: ${{ inputs.javaVersion || '17' }}
FDC_ANDROID_EMULATOR_API_LEVEL: ${{ inputs.androidEmulatorApiLevel || '34' }}
FDC_NODEJS_VERSION: ${{ inputs.nodeJsVersion || '20' }}
FDC_FIREBASE_TOOLS_VERSION: ${{ inputs.firebaseToolsVersion || '13.29.1' }}
FDC_FIREBASE_TOOLS_DIR: /tmp/firebase-tools
FDC_FIREBASE_COMMAND: /tmp/firebase-tools/node_modules/.bin/firebase

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
integration-test:
continue-on-error: false
runs-on: ubuntu-latest

services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: password
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432

steps:
- uses: actions/checkout@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
show-progress: false

- uses: actions/setup-java@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
java-version: ${{ env.FDC_JAVA_VERSION }}
distribution: temurin

- uses: actions/setup-node@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
node-version: ${{ env.FDC_NODEJS_VERSION }}

- name: install firebase-tools
run: |
set -v
mkdir -p ${{ env.FDC_FIREBASE_TOOLS_DIR }}
cd ${{ env.FDC_FIREBASE_TOOLS_DIR }}
echo '{}' > package.json
npm install --fund=false --audit=false --save --save-exact firebase-tools@${{ env.FDC_FIREBASE_TOOLS_VERSION }}

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 7: npmCommand not pinned by hash
Click Remediation section below to solve this issue

- name: Restore Gradle cache
id: restore-gradle-cache
uses: actions/cache/restore@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
if: github.event_name != 'schedule'
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-cache-jqnvfzw6w7-${{ github.run_id }}
restore-keys: |
gradle-cache-jqnvfzw6w7-

- name: tool versions
continue-on-error: true
run: |
function run_cmd {
echo "==============================================================================="
echo "Running Command: $*"
("$@" 2>&1) || echo "WARNING: command failed with non-zero exit code $?: $*"
}

run_cmd uname -a
run_cmd which java
run_cmd java -version
run_cmd which javac
run_cmd javac -version
run_cmd which node
run_cmd node --version
run_cmd ${{ env.FDC_FIREBASE_COMMAND }} --version
run_cmd ./gradlew --version

- name: Gradle assembleDebugAndroidTest
run: |
set -v

# Speed up build times and also avoid configuring firebase-crashlytics-ndk
# which is finicky integrating with the Android NDK.
echo >> gradle.properties
echo "org.gradle.configureondemand=true" >> gradle.properties

./gradlew \
--profile \
${{ (inputs.gradleInfoLog && '--info') || '' }} \
:firebase-dataconnect:assembleDebugAndroidTest

- name: Save Gradle cache
uses: actions/cache/save@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
if: github.event_name == 'schedule'
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ steps.restore-gradle-cache.outputs.cache-primary-key }}

- name: Enable KVM group permissions for Android Emulator
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: Restore AVD cache
uses: actions/cache/restore@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
if: github.event_name != 'schedule'
id: restore-avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}-${{ github.run_id }}
restore-keys: |
avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}-

- name: Create AVD
if: github.event_name == 'schedule' || steps.restore-avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
api-level: ${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}
arch: x86_64
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: echo "Generated AVD snapshot for caching."

- name: Save AVD cache
uses: actions/cache/save@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
if: github.event_name == 'schedule'
with:
path: |
~/.android/avd/*
~/.android/adb*
key: ${{ steps.restore-avd-cache.outputs.cache-primary-key }}

- name: Data Connect Emulator
run: |
set -x

echo 'emulator.postgresConnectionUrl=postgresql://postgres:password@127.0.0.1:5432?sslmode=disable' > firebase-dataconnect/dataconnect.local.properties

./gradlew \
${{ (inputs.gradleInfoLog && '--info') || '' }} \
:firebase-dataconnect:connectors:runDebugDataConnectEmulator \
>firebase.emulator.dataconnect.log 2>&1 &

- name: Firebase Auth Emulator
run: |
set -x
cd firebase-dataconnect/emulator
${{ env.FDC_FIREBASE_COMMAND }} emulators:start --only=auth >firebase.emulator.auth.log 2>&1 &

- name: Capture Logcat Logs
run: adb logcat >logcat.log &

- name: Gradle connectedCheck
id: connectedCheck
uses: reactivecircus/android-emulator-runner@v2

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
# Allow this GitHub Actions "job" to continue even if the tests fail so that logs from a
# failed test run get uploaded as "artifacts" and are available to investigate failed runs.
# A later step in this "job" will fail the job if this step fails
continue-on-error: true
with:
api-level: ${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}
arch: x86_64
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: |
set -eux && ./gradlew ${{ (inputs.gradleInfoLog && '--info') || '' }} :firebase-dataconnect:connectedCheck :firebase-dataconnect:connectors:connectedCheck

- name: Upload log file artifacts
uses: actions/upload-artifact@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: integration_test_logs
path: "**/*.log"
if-no-files-found: warn
compression-level: 9

- name: Upload Gradle build report artifacts
uses: actions/upload-artifact@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: integration_test_gradle_build_reports
path: firebase-dataconnect/**/build/reports/
if-no-files-found: warn
compression-level: 9

- name: Check test result
if: steps.connectedCheck.outcome != 'success'
run: |
echo "Failing the job since the connectedCheck step failed"
exit 1

# Check this yml file with "actionlint": https://github.com/rhysd/actionlint
# To run actionlint yourself, run `brew install actionlint` followed by
# `actionlint .github/workflows/dataconnect.yml`
actionlint-dataconnect-yml:
continue-on-error: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
show-progress: false
- uses: docker://rhysd/actionlint:1.7.7

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 7: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
args: -color /github/workspace/.github/workflows/dataconnect.yml
23 changes: 14 additions & 9 deletions .github/workflows/dataconnect_demo_app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,20 @@ jobs:
- name: tool versions
continue-on-error: true
run: |
set +e -v
which java
java -version
which javac
javac -version
which node
node --version
${{ env.FDC_FIREBASE_COMMAND }} --version
./gradlew --version
function run_cmd {
echo "==============================================================================="
echo "Running Command: $*"
("$@" 2>&1) || echo "WARNING: command failed with non-zero exit code $?: $*"
}

run_cmd which java
run_cmd java -version
run_cmd which javac
run_cmd javac -version
run_cmd which node
run_cmd node --version
run_cmd ${{ env.FDC_FIREBASE_COMMAND }} --version
run_cmd ./gradlew --version

- name: ./gradlew assemble test
run: |
Expand Down
36 changes: 22 additions & 14 deletions .github/workflows/make-bom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
with:
python-version: '3.10'

- uses: actions/checkout@v4.1.1

- name: Set up JDK 17
uses: actions/setup-java@v4.1.0
with:
Expand All @@ -21,19 +23,25 @@

- name: Build
run: |
./ci/run.sh \
--artifact-target-dir=./logs/artifacts \
--artifact-patterns=bom.zip \
--artifact-patterns=bomReleaseNotes.md \
--artifact-patterns=recipeVersionUpdate.txt \
gradle \
-- \
--build-cache \
buildBomZip

- name: Upload generated artifacts
./gradlew buildBomBundleZip

- name: Upload bom
uses: actions/upload-artifact@v4.3.3

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: bom
path: build/bom/
retention-days: 15

- name: Upload release notes
uses: actions/upload-artifact@v4.3.3

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 1: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: bom_release_notes
path: build/bomReleaseNotes.md
retention-days: 15

- name: Upload recipe version update
uses: actions/upload-artifact@v4.3.3
with:
name: artifacts
path: ./logs/artifacts/
retention-days: 5
name: recipe_version
path: build/recipeVersionUpdate.txt
retention-days: 15
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Check buildSrc
name: Check plugins

Check failure

Code scanning / Scorecard

Token-Permissions High

score is 0: no topLevel permission defined
Remediation tip: Visit https://app.stepsecurity.io/secureworkflow.
Tick the 'Restrict permissions for GITHUB_TOKEN'
Untick other options
NOTE: If you want to resolve multiple issues at once, you can visit https://app.stepsecurity.io/securerepo instead.
Click Remediation section below for further remediation help

on:
pull_request:
paths:
- 'buildSrc/**'
- 'plugins/**'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
build-src-check:
plugins-check:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4.1.1
Expand All @@ -20,13 +20,13 @@
java-version: 17
distribution: temurin
cache: gradle
- name: buildSrc Tests
- name: plugins tests
env:
FIREBASE_CI: 1
run: |
./gradlew -b buildSrc/build.gradle.kts -PenablePluginTests=true check
./gradlew plugins:check
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@82082dac68ad6a19d980f8ce817e108b9f496c2a
with:
files: "**/build/test-results/**/*.xml"
check_name: "buildSrc Test Results"
check_name: "plugins test results"
Loading
Loading