Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f14703f
Add cloudbuild.yaml
danieljbruce May 6, 2026
248638f
Shorten the script
danieljbruce May 6, 2026
cdb2ad1
remove the timeout
danieljbruce May 6, 2026
372a03b
feat: add new Bigtable feature
danieljbruce May 6, 2026
7caf8a0
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
danieljbruce May 6, 2026
55b0dec
Merge branch 'main' into migrate-bigtable-to-gcp-cloud-build
danieljbruce May 6, 2026
7a3fadd
Merge branch 'main' into migrate-bigtable-to-gcp-cloud-build
danieljbruce May 6, 2026
5f930f9
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] May 6, 2026
f3772ea
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
gcf-owl-bot[bot] May 6, 2026
83f73dd
feat: add new Bigtable feature
danieljbruce May 6, 2026
d7782b2
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
danieljbruce May 6, 2026
6be7893
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] May 6, 2026
1f71bd1
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
gcf-owl-bot[bot] May 6, 2026
e6cc411
Changed to `ubuntu` in the yaml file
danieljbruce May 6, 2026
c836303
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
danieljbruce May 6, 2026
1ab42bc
change the dir to handwritten/bigtable
danieljbruce May 6, 2026
8e6ff1d
Change the pre-system test script
danieljbruce May 7, 2026
051f019
Fix the unique id error
danieljbruce May 7, 2026
20b11db
Add pre system tests to the first step
danieljbruce May 7, 2026
a74e61e
Remove the comment changed to
danieljbruce May 7, 2026
0aae31a
Eliminate the first pack and play error
danieljbruce May 8, 2026
af443d1
Fix `require` error with node dependencies
danieljbruce May 8, 2026
57bbdad
Modify the pack and play tests by adding a header
danieljbruce May 8, 2026
f6d43fe
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] May 8, 2026
8dd7d70
Eliminate unnecessary comments
danieljbruce May 8, 2026
fd18c1a
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
danieljbruce May 8, 2026
bfe5155
Restore the system test script
danieljbruce May 8, 2026
e51a2e8
Increase the timeout to 3 hours for the system tes
danieljbruce May 8, 2026
11f861b
Merge branch 'main' into migrate-bigtable-to-gcp-cloud-build
danieljbruce May 8, 2026
88a19c7
Add dependency comment
danieljbruce May 8, 2026
c6a65a8
Merge branch 'migrate-bigtable-to-gcp-cloud-build' of https://github.…
danieljbruce May 11, 2026
83539cc
Do a conditional diff check
danieljbruce May 11, 2026
9f6587c
check against main removed
danieljbruce May 11, 2026
9916905
Add a comment about the packnplay tests
danieljbruce May 11, 2026
3ce9c3f
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] May 11, 2026
45420f8
pin the node version
danieljbruce May 11, 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
96 changes: 96 additions & 0 deletions handwritten/bigtable/cloudbuild.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
steps:
# 0. Check for changes in handwritten/bigtable
- name: 'gcr.io/cloud-builders/git'
id: 'check-changes'
entrypoint: 'bash'
args:
- '-c'
- |
git fetch origin main --quiet
# Compare with origin/main to detect changes.
if git diff --quiet origin/main... -- . ; then
echo "No changes in handwritten/bigtable. Skipping tests."
echo "skip" > /workspace/skip_tests
else
echo "Changes detected in handwritten/bigtable. Proceeding with tests."
fi
dir: 'handwritten/bigtable'

# 1. Set up Node.js environment
- name: 'node:18'
entrypoint: 'bash'
args:
- '-c'
- |
if [ -f /workspace/skip_tests ]; then exit 0; fi
npm install
npm run presystem-test
dir: 'handwritten/bigtable'
id: 'install-dependencies'
waitFor: ['check-changes']

# 2. Configure environment variables for the tests and run system tests
# - GOOGLE_APPLICATION_CREDENTIALS: GCB steps run as a service account
# that is typically granted permissions directly. Explicitly setting
# GOOGLE_APPLICATION_CREDENTIALS might not be needed if the GCB service
# account has the right roles (e.g., Bigtable Admin, Bigtable User).
# If you need to use specific service account key JSON, you'd store it
# in Secret Manager and mount it here. For simplicity, we'll rely on
# the GCB service account's inherent permissions.
# - GCLOUD_PROJECT: Can be passed as a build variable.
- name: 'node:18'
entrypoint: 'bash'
args:
- '-c'
- |
if [ -f /workspace/skip_tests ]; then exit 0; fi
npm run system-test
dir: 'handwritten/bigtable'
env:
- 'GCLOUD_PROJECT=${_GCP_PROJECT_ID}' # Pass project ID via build variable
# If you need specific credentials from Secret Manager, uncomment these:
# - 'GOOGLE_APPLICATION_CREDENTIALS=/secrets/sa-key.json'
id: 'run-system-tests'
waitFor: ['install-dependencies']
# For Secret Manager, uncomment these (adjust secret name and volume path as needed):
# secretEnv: ['SA_KEY']
# volumes:
# - name: 'sa-keys'
# path: '/secrets'

# 3. (Optional) Code Coverage Reporting
- name: 'node:18'
entrypoint: 'bash'
args:
- '-c'
- |
if [ -f /workspace/skip_tests ]; then exit 0; fi
# Check if nyc is installed and run report
if [ -f ./node_modules/nyc/bin/nyc.js ]; then
./node_modules/nyc/bin/nyc.js report || true # `|| true` prevents build failure if nyc report itself exits non-zero
else
echo "nyc not found, skipping coverage report."
fi
# The original codecov.sh script from Kokoro needs to be made available to GCB.
# Options:
# a) Commit codecov.sh into your repo (e.g., .kokoro/codecov.sh) and call it:
# if [ -f .kokoro/codecov.sh ]; then . ./.kokoro/codecov.sh; fi
# b) Replicate its functionality directly in this step.
# c) Store it in a GCS bucket and fetch it.
echo "Codecov reporting (if desired) would be integrated here."
dir: 'handwritten/bigtable'
id: 'coverage-report'
waitFor: ['run-system-tests']

# If you use Secret Manager for credentials, uncomment and configure:
# availableSecrets:
# secretManager:
# - versionName: projects/${PROJECT_ID}/secrets/YOUR_SERVICE_ACCOUNT_KEY_SECRET_NAME/versions/latest
# env: 'SA_KEY' # This env var will hold the secret value. Use it as GOOGLE_APPLICATION_CREDENTIALS in step 3 if needed.

# Define a substitution variable for your project ID
# Replace 'long-door-651' with the actual GCP Project ID your system tests should run against.
substitutions:
_GCP_PROJECT_ID: 'long-door-651'

timeout: '10800s'
Loading
Loading