Skip to content

Commit ec25dcf

Browse files
Merge branch 'main' into jdbc/otel-clean-branch
2 parents c0b915a + 81c99ff commit ec25dcf

File tree

5,396 files changed

+2102818
-13293
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,396 files changed

+2102818
-13293
lines changed

.github/CODEOWNERS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,7 @@
99
/java-vertexai/ @googleapis/vertexai-team @googleapis/cloud-sdk-java-team
1010
/java-bigquerystorage/ @googleapis/bigquery-team @googleapis/cloud-sdk-java-team
1111
/java-bigquery/ @googleapis/bigquery-team @googleapis/cloud-sdk-java-team
12+
/java-spanner/ @googleapis/spanner-team @googleapis/cloud-sdk-java-team
13+
/java-spanner-jdbc/ @googleapis/spanner-team @googleapis/cloud-sdk-java-team
14+
/google-auth-library-java/ @googleapis/cloud-sdk-auth-team @googleapis/cloud-sdk-java-team
15+
/java-storage/ @googleapis/gcs-team @googleapis/cloud-sdk-java-team
4.68 KB
Binary file not shown.

.github/scripts/release_manager_merge_bot.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,16 @@ func main() {
213213
}
214214

215215
state = *status.State
216-
log.Printf("Overall status: %s", state)
216+
log.Printf("Overall commit status: %s", state)
217+
if pr.MergeableState != nil {
218+
log.Printf("PR mergeable state: %s", *pr.MergeableState)
219+
if *pr.MergeableState == "dirty" {
220+
fatalError("PR #%d has merge conflicts (dirty).", prNumber)
221+
}
222+
if *pr.MergeableState == "draft" {
223+
fatalError("PR #%d is a draft.", prNumber)
224+
}
225+
}
217226

218227
switch state {
219228
case "failure":
@@ -230,7 +239,19 @@ func main() {
230239
}
231240
retryCount++
232241
case "success":
233-
log.Println("All checks have passed. Merging the pull request...")
242+
// Check if the PR is truly mergeable. MergeableState can be "blocked" if required
243+
// check runs (e.g. GitHub Actions) or reviews are missing, even if CombinedStatus is "success".
244+
// If it's nil, GitHub is still calculating mergeability.
245+
if pr.MergeableState == nil || *pr.MergeableState == "blocked" || *pr.MergeableState == "behind" {
246+
stateStr := "nil"
247+
if pr.MergeableState != nil {
248+
stateStr = *pr.MergeableState
249+
}
250+
log.Printf("Commit status is success, but PR mergeable state is %q. Waiting...", stateStr)
251+
goto wait
252+
}
253+
254+
log.Println("All checks have passed and PR is mergeable. Merging the pull request...")
234255
commitMessage := fmt.Sprintf("Merge pull request #%d from %s/%s", prNumber, owner, repo)
235256
mergeResult, _, err := client.PullRequests.Merge(ctx, owner, repo, prNumber, commitMessage, &github.PullRequestOptions{
236257
MergeMethod: "squash",

.github/workflows/ci.yaml

Lines changed: 89 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,86 @@ jobs:
5353
id: date
5454
run: echo "::set-output name=week_of_year::$(date +'%W' --utc)"
5555
- uses: actions/checkout@v4
56+
- uses: actions/setup-java@v4
57+
with:
58+
java-version: 8
59+
distribution: temurin
60+
- name: "Set jvm system property environment variable for surefire plugin (unit tests)"
61+
# Maven surefire plugin (unit tests) allows us to specify JVM to run the tests.
62+
# https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm
63+
run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV
64+
shell: bash
65+
- uses: actions/setup-java@v4
66+
with:
67+
java-version: 11
68+
distribution: temurin
69+
cache: maven
70+
- uses: actions/cache@v4
71+
id: mvn-cache
72+
with:
73+
path: ~/.m2/repository
74+
key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }}
75+
- run: .kokoro/build.sh
76+
shell: bash
77+
env:
78+
JOB_TYPE: test
79+
JOB_NAME: units-8-runtime-${{matrix.java}}
80+
# detect which libraries have changed
81+
changes:
82+
runs-on: ubuntu-latest
83+
permissions:
84+
pull-requests: read
85+
outputs:
86+
packages: ${{ steps.filter.outputs.changes }}
87+
steps:
88+
- uses: dorny/paths-filter@v4
89+
id: filter
90+
with:
91+
filters: |
92+
java-bigquery: java-bigquery/**
93+
java-bigquerystorage: java-bigquerystorage/**
94+
java-datastore: java-datastore/**
95+
java-logging-logback: java-logging-logback/**
96+
java-logging: java-logging/**
97+
java-spanner: java-spanner/**
98+
java-storage: java-storage/**
99+
sdk-platform-java: sdk-platform-java/**
100+
split-units:
101+
runs-on: ubuntu-latest
102+
needs: changes
103+
strategy:
104+
fail-fast: false
105+
matrix:
106+
package: ${{ fromJSON(needs.changes.outputs.packages) }}
107+
java: [11, 17, 21, 25]
108+
steps:
109+
- name: Get current week within the year
110+
id: date
111+
run: echo "::set-output name=week_of_year::$(date +'%W' --utc)"
112+
- uses: actions/checkout@v4
113+
- uses: actions/setup-java@v4
114+
with:
115+
distribution: temurin
116+
java-version: ${{matrix.java}}
117+
- run: .kokoro/build.sh
118+
env:
119+
BUILD_SUBDIR: ${{matrix.package}}
120+
JOB_TYPE: test
121+
JOB_NAME: units-${{matrix.package}}-${{matrix.java}}
122+
split-units-8:
123+
runs-on: ubuntu-latest
124+
name: "split-units"
125+
needs: changes
126+
strategy:
127+
fail-fast: false
128+
matrix:
129+
package: ${{ fromJSON(needs.changes.outputs.packages) }}
130+
java: [8]
131+
steps:
132+
- name: Get current week within the year
133+
id: date
134+
run: echo "::set-output name=week_of_year::$(date +'%W' --utc)"
135+
- uses: actions/checkout@v4
56136
- uses: actions/setup-java@v4
57137
with:
58138
java-version: 11
@@ -66,15 +146,16 @@ jobs:
66146
key: ${{ runner.os }}-maven-unified-${{ steps.date.outputs.week_of_year }}
67147
- name: Install all modules using Java 11
68148
shell: bash
69-
run: |
70-
mvn -V -B -ntp clean install -DskipTests -Dfmt.skip -Dclirr.skip -Denforcer.skip -Dcheckstyle.skip -Dflatten.skip -Danimal-sniffer.skip -Djacoco.skip
71-
working-directory: sdk-platform-java
149+
run: .kokoro/build.sh
150+
env:
151+
BUILD_SUBDIR: ${{matrix.package}}
152+
JOB_TYPE: install
72153
- uses: actions/setup-java@v4
73154
with:
74-
java-version: 8
155+
java-version: ${{matrix.java}}
75156
distribution: temurin
76157
- run: java -version
77-
- name: Run tests in Java 8 with the source compiled in Java 11
158+
- name: Run tests in Java ${{matrix.java}} with the source compiled in Java 11
78159
run: |
79160
mvn test \
80161
-B -ntp \
@@ -86,11 +167,13 @@ jobs:
86167
-Dflatten.skip=true \
87168
-Danimal.sniffer.skip=true \
88169
-Dmaven.wagon.http.retryHandler.count=5 \
170+
--also-make \
89171
-T 1C
90172
env:
173+
BUILD_SUBDIR: ${{matrix.package}}
91174
JOB_TYPE: test
92175
JOB_NAME: units-8-runtime-${{matrix.java}}
93-
working-directory: sdk-platform-java
176+
working-directory: ${{matrix.package}}
94177
windows:
95178
runs-on: windows-latest
96179
steps:

.github/workflows/generated_files_sync.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ jobs:
173173
|grep --invert-match 'java/com/google' \
174174
|grep --invert-match '/test/' \
175175
|grep --invert-match '/tests/' \
176+
|grep --invert-match '/javatests/' \
176177
|grep --invert-match samples \
177178
|grep --invert-match benchmark \
178179
|grep --invert-match grafeas \
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Copyright 2022 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
# GitHub action job to test core java library features on
15+
# downstream client libraries before they are released.
16+
on:
17+
push:
18+
branches:
19+
- main
20+
pull_request:
21+
name: google-auth-library-java ci
22+
env:
23+
BUILD_SUBDIR: google-auth-library-java
24+
jobs:
25+
filter:
26+
runs-on: ubuntu-latest
27+
outputs:
28+
library: ${{ steps.filter.outputs.library }}
29+
steps:
30+
- uses: actions/checkout@v4
31+
- uses: dorny/paths-filter@v3
32+
id: filter
33+
with:
34+
filters: |
35+
library:
36+
- 'google-auth-library-java/**'
37+
units-logging:
38+
needs: filter
39+
if: ${{ needs.filter.outputs.library == 'true' }}
40+
runs-on: ubuntu-latest
41+
strategy:
42+
fail-fast: false
43+
matrix:
44+
java: [11, 17, 21, 25]
45+
steps:
46+
- uses: actions/checkout@v4
47+
- uses: actions/setup-java@v4
48+
with:
49+
distribution: temurin
50+
java-version: ${{matrix.java}}
51+
- run: java -version
52+
- run: .kokoro/build.sh
53+
env:
54+
BUILD_SUBDIR: google-auth-library-java
55+
JOB_TYPE: test
56+
SUREFIRE_JVM_OPT: "-P '!slf4j2x,slf4j2x-test'"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
on:
2+
push:
3+
branches:
4+
- main
5+
pull_request:
6+
name: java-spanner integration-tests-against-emulator
7+
jobs:
8+
filter:
9+
runs-on: ubuntu-latest
10+
outputs:
11+
library: ${{ steps.filter.outputs.library }}
12+
steps:
13+
- uses: actions/checkout@v4
14+
- uses: dorny/paths-filter@v3
15+
id: filter
16+
with:
17+
filters: |
18+
library:
19+
- 'java-spanner/**'
20+
units:
21+
needs: filter
22+
if: ${{ needs.filter.outputs.library == 'true' }}
23+
runs-on: ubuntu-latest
24+
25+
services:
26+
emulator:
27+
image: gcr.io/cloud-spanner-emulator/emulator:latest
28+
ports:
29+
- 9010:9010
30+
- 9020:9020
31+
32+
steps:
33+
- uses: actions/checkout@v6
34+
- uses: actions/setup-java@v5
35+
with:
36+
distribution: temurin
37+
java-version: 11
38+
- name: Running tests
39+
run: .kokoro/build.sh
40+
env:
41+
JOB_TYPE: test
42+
BUILD_SUBDIR: java-spanner
43+
SPANNER_EMULATOR_HOST: localhost:9010
44+
GOOGLE_CLOUD_PROJECT: emulator-test-project
45+
SUREFIRE_JVM_OPT: '-Penable-integration-tests -DskipUnitTests=true -Dspanner.testenv.instance="" -Dmaven.main.skip=true'

.github/workflows/java-bigquery-ci.yaml renamed to .github/workflows/java-spanner-jdbc-ci.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ on:
1818
branches:
1919
- main
2020
pull_request:
21-
name: java-bigquery ci
21+
name: java-spanner-jdbc ci
2222
env:
23-
BUILD_SUBDIR: java-bigquery
23+
BUILD_SUBDIR: java-spanner-jdbc
2424
jobs:
2525
filter:
2626
runs-on: ubuntu-latest
@@ -33,7 +33,7 @@ jobs:
3333
with:
3434
filters: |
3535
library:
36-
- 'java-bigquery/**'
36+
- 'java-spanner-jdbc/**'
3737
units:
3838
needs: filter
3939
if: ${{ needs.filter.outputs.library == 'true' }}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
on:
2+
push:
3+
branches:
4+
- main
5+
pull_request:
6+
name: java-spanner-jdbc Integration tests against emulator
7+
env:
8+
BUILD_SUBDIR: java-spanner-jdbc
9+
jobs:
10+
filter:
11+
runs-on: ubuntu-latest
12+
outputs:
13+
library: ${{ steps.filter.outputs.library }}
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: dorny/paths-filter@v3
17+
id: filter
18+
with:
19+
filters: |
20+
library:
21+
- 'java-spanner-jdbc/**'
22+
tests-against-emulator:
23+
needs: filter
24+
if: ${{ needs.filter.outputs.library == 'true' }}
25+
runs-on: ubuntu-latest
26+
27+
services:
28+
emulator:
29+
image: gcr.io/cloud-spanner-emulator/emulator:latest
30+
ports:
31+
- 9010:9010
32+
- 9020:9020
33+
34+
steps:
35+
- uses: actions/checkout@v6
36+
- uses: actions/setup-java@v5
37+
with:
38+
distribution: temurin
39+
java-version: 17
40+
- run: java -version
41+
- name: Install dependencies for the integration test
42+
run: .kokoro/build.sh
43+
env:
44+
JOB_TYPE: test
45+
- run: mvn -B -Dspanner.testenv.instance="" -Penable-integration-tests -DtrimStackTrace=false -Dclirr.skip=true -Denforcer.skip=true -fae verify
46+
working-directory: java-spanner-jdbc
47+
env:
48+
SPANNER_EMULATOR_HOST: localhost:9010
49+
GOOGLE_CLOUD_PROJECT: emulator-test-project
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Copyright 2024 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
# Github action job to test core java library features on
15+
# downstream client libraries before they are released.
16+
on:
17+
pull_request:
18+
name: java-spanner-jdbc quickperf
19+
env:
20+
BUILD_SUBDIR: java-spanner-jdbc
21+
jobs:
22+
filter:
23+
runs-on: ubuntu-latest
24+
outputs:
25+
library: ${{ steps.filter.outputs.library }}
26+
steps:
27+
- uses: actions/checkout@v4
28+
- uses: dorny/paths-filter@v3
29+
id: filter
30+
with:
31+
filters: |
32+
library:
33+
- 'java-spanner-jdbc/**'
34+
quickperf:
35+
needs: filter
36+
if: ${{ needs.filter.outputs.library == 'true' }}
37+
runs-on: ubuntu-latest
38+
steps:
39+
- uses: actions/checkout@v6
40+
- uses: actions/setup-java@v5
41+
with:
42+
distribution: temurin
43+
java-version: 17
44+
- name: Run tests
45+
run: mvn test
46+
working-directory: java-spanner-jdbc/samples/quickperf

0 commit comments

Comments
 (0)