Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
1280c13
chore: add monorepo migration script
meltsufin Dec 22, 2025
c6d3dbb
chore: fix path
meltsufin Dec 22, 2025
8bb58cf
chore: refine migration script for atomic commits and isolation
meltsufin Dec 22, 2025
1ee029d
chore: remove pom.xml update logic from migration script
meltsufin Dec 23, 2025
c382214
chore: implement GitHub Actions workflow migration using paths-filter
meltsufin Dec 23, 2025
c8a3489
chore: skip redundant workflows and update generation_config.yaml
meltsufin Dec 23, 2025
0614c31
chore: expand workflow skip list to include samples, release, and more
meltsufin Dec 23, 2025
499fd4e
chore: make workflow transformation logic a permanent script and rena…
meltsufin Dec 23, 2025
c3dd105
chore: refine versions.txt consolidation to only append data lines
meltsufin Dec 23, 2025
516480a
chore: remove clirr job from workflow transformation
meltsufin Dec 23, 2025
4b6974d
chore: add copyright header fix to migration script
meltsufin Dec 23, 2025
a7e8c44
impl: automate reporting removal, build verification, and dynamic par…
meltsufin Dec 24, 2025
0135d77
feat: add CLI binary checks to migrate.sh
chingor13 Jan 5, 2026
4b7b61f
chore: allow setting SOURCE_REPO_URL via environment variable in migr…
chingor13 Jan 6, 2026
f67a635
feat: add guard for checking if the repository is already migrated
chingor13 Jan 6, 2026
990ea15
feat: add environment variable for specifying codeowner team to migrate
chingor13 Jan 6, 2026
fc2e848
feat: insert new module in root pom.xml
chingor13 Jan 7, 2026
e0e5b92
chore: exclude common files from source root in migration script
chingor13 Jan 7, 2026
a79c964
refactor: extract inline python to a .py file
chingor13 Jan 8, 2026
be8f487
chore: add license headers
chingor13 Jan 8, 2026
26d5c49
fix: use 2026 when fixing copyright headers
chingor13 Jan 8, 2026
0861c34
refactor: extract fix copyright inline python into .py file
chingor13 Jan 8, 2026
96d286e
feat: update urls in the migrated pom.xml
chingor13 Jan 8, 2026
5667298
fix: preserve explicilty declared versions in pom.xml
chingor13 Jan 8, 2026
f7c539f
fix: also preserve explicit google-cloud-x dependency versions
chingor13 Jan 8, 2026
08d1feb
feat: prompt for CODEOWNERS value
chingor13 Jan 8, 2026
10a948a
feat: prompt for SOURCE_REPO_URL value
chingor13 Jan 8, 2026
8f93084
feat: merge generator config yaml
chingor13 Jan 12, 2026
3d2927a
chore: read root CODEOWNER entry from source
chingor13 Jan 14, 2026
e26affa
migrate .OwlBot-hermetic.yaml
chingor13 Jan 14, 2026
28c60c0
migrate existing owlbot.py file and replace the template excludes
chingor13 Jan 15, 2026
b5de990
skip .kokoro folder
chingor13 Jan 15, 2026
471aa2f
remove more unnecessary files
chingor13 Jan 15, 2026
4204b77
remove only kokoro configs and clean up generation config
chingor13 Jan 15, 2026
aadfb7c
disable java17 profile for split repo's java8 test
chingor13 Jan 15, 2026
cb9b7c2
add git config for longpaths on windows build
chingor13 Jan 16, 2026
b2a9962
fix working directory for longpaths
chingor13 Jan 16, 2026
4b18ca0
allow running root ci scripts in BUILD_SUBDIR
chingor13 Jan 16, 2026
4457f62
modernize the bom pom.xml
chingor13 Jan 16, 2026
c7117a3
allow specifying target branch
chingor13 Jan 21, 2026
f48989f
fix s.move
chingor13 Jan 21, 2026
403e68f
use BUILD_SUBDIR env variable
chingor13 Jan 21, 2026
7de38fe
skip kokoro files
chingor13 Jan 21, 2026
a6b41b9
fix windows build file
chingor13 Jan 21, 2026
2e7736f
optionally squash commits
chingor13 Jan 22, 2026
54851d2
fix CODEOWNERS detection
chingor13 Jan 23, 2026
82e8eef
fix owlbot template excludes
chingor13 Jan 23, 2026
866ae5e
configurable base branch, defaults to main
chingor13 Jan 26, 2026
77637a7
set datastore project id for needed datastore migration
chingor13 Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion .kokoro/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,17 @@ if [ -f "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secr
source "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secrets"
fi

if [[ -n "${BUILD_SUBDIR}" ]]
then
echo "Running in subdir: ${BUILD_SUBDIR}"
pushd "${BUILD_SUBDIR}"
fi

RETURN_CODE=0

case ${JOB_TYPE} in
test)
echo "SUREFIRE_JVM_OPT: ${SUREFIRE_JVM_OPT}"
retry_with_backoff 3 10 \
mvn test \
-B -ntp \
Expand All @@ -48,7 +55,7 @@ case ${JOB_TYPE} in
-Dflatten.skip=true \
-Danimal.sniffer.skip=true \
-Dmaven.wagon.http.retryHandler.count=5 \
-T 1C
-T 1C ${SUREFIRE_JVM_OPT}
RETURN_CODE=$?
echo "Finished running unit tests"
;;
Expand Down Expand Up @@ -125,6 +132,12 @@ case ${JOB_TYPE} in

esac

if [[ -n "${BUILD_SUBDIR}" ]]
then
echo "restoring directory"
popd
fi

if [ "${REPORT_COVERAGE}" == "true" ]; then
bash ${KOKORO_GFILE_DIR}/codecov.sh
fi
Expand Down
12 changes: 12 additions & 0 deletions .kokoro/dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ function determineMavenOpts() {

export MAVEN_OPTS=$(determineMavenOpts)

if [[ -n "${BUILD_SUBDIR}" ]]
then
echo "Running in subdir: ${BUILD_SUBDIR}"
pushd "${BUILD_SUBDIR}"
fi

# this should run maven enforcer
retry_with_backoff 3 10 \
mvn install -B -V -ntp \
Expand All @@ -57,3 +63,9 @@ retry_with_backoff 3 10 \
-Dclirr.skip=true

mvn -B dependency:analyze -DfailOnWarning=true

if [[ -n "${BUILD_SUBDIR}" ]]
then
echo "Leaving subdir: ${BUILD_SUBDIR}"
popd
fi
6 changes: 6 additions & 0 deletions .kokoro/presubmit/common.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ env_vars: {
value: "test"
}

# Well known environment variable to datastore tests
env_vars: {
key: "DATASTORE_PROJECT_ID"
value: "cloud-java-ci-test"
}

before_action {
fetch_keystore {
keystore_resource {
Expand Down
4 changes: 4 additions & 0 deletions generation/check_non_release_please_versions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ for pomFile in $(find . -mindepth 2 -name pom.xml | sort ); do
echo "Skipping version check for java-samples directory"
continue
fi
if [[ "${pomFile}" =~ .*/samples/.* ]]; then
echo "Skipping version check for samples directory"
continue
fi

if grep -n '<version>.*</version>' "$pomFile" | grep -v 'x-version-update'; then
echo "Found version declaration(s) without x-version-update in: $pomFile"
Expand Down
53 changes: 53 additions & 0 deletions monorepo-migration/fix_copyright_headers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env python3
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os
import re
import sys

def fix_copyright(path):
if os.path.isfile(path):
if path.endswith(".java"):
_fix_file(path)
elif os.path.isdir(path):
for root, _, files in os.walk(path):
for file in files:
if file.endswith(".java"):
_fix_file(os.path.join(root, file))

def _fix_file(file_path):
with open(file_path, 'r') as f:
content = f.read()

# Replace "Copyright [Year] Google LLC" or "Copyright [Year] Google Inc."
# with "Copyright 2026 Google LLC"
new_content = re.sub(
r'Copyright \d{4} Google (Inc\.|LLC)',
'Copyright 2026 Google LLC',
content
)

if new_content != content:
with open(file_path, 'w') as f:
f.write(new_content)
print(f"Updated copyright in {file_path}")

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: fix_copyright_headers.py <file_or_directory_path> ...")
sys.exit(1)

for arg in sys.argv[1:]:
fix_copyright(arg)
Loading
Loading