Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
dd60ba7
Run CI on a single machine by generating cloudbuild files
mattsoulanille Oct 28, 2020
c94ad36
Verify the dependency graph is a valid graph
mattsoulanille Nov 2, 2020
7344274
Add dependencies to e2e
mattsoulanille Nov 4, 2020
1474e3b
Use the node:12 docker image for tfjs-node CI
mattsoulanille Nov 4, 2020
207ca57
Merge branch 'master' into generate_cloud_build
mattsoulanille Nov 5, 2020
24c18c3
Remove TODO and allow changes to generate_cloudbuild.js to trigger a …
mattsoulanille Nov 5, 2020
5f3cf8d
Merge branch 'generate_cloud_build' of github.com:mattsoulanille/tfjs…
mattsoulanille Nov 5, 2020
383b8fb
Merge branch 'master' into generate_cloud_build
mattsoulanille Nov 5, 2020
f9c1fdd
Add tfjs-backend-cpu to tfjs-data in package_dependencies.json
mattsoulanille Nov 6, 2020
852eab7
Don't have tfjs-backend-webgpu build its dependencies in CI
mattsoulanille Nov 6, 2020
2e6d72a
Merge branch 'master' into generate_cloud_build
pyu10055 Nov 6, 2020
ebe89d0
Merge branch 'master' into generate_cloud_build
mattsoulanille Nov 10, 2020
c9e1229
Revert changes in tfjs-backend-webgpu to master
mattsoulanille Nov 10, 2020
df6a5be
Add the update-cloudbuild-tests script to package.json
mattsoulanille Nov 10, 2020
2d256c9
Merge branch 'master' into generate_cloud_build
mattsoulanille Nov 10, 2020
8e05f35
Make tfjs-backend-webgpu tests wait for yarn to run
mattsoulanille Nov 10, 2020
085d57d
Merge branch 'master' into generate_cloud_build
pyu10055 Nov 10, 2020
5c6370c
Add a destination argument to generate_cloudbuild_for_packages.js
mattsoulanille Nov 10, 2020
e5b1cea
Merge branch 'generate_cloud_build' of github.com:mattsoulanille/tfjs…
mattsoulanille Nov 10, 2020
24632c1
Merge branch 'master' into generate_cloud_build
pyu10055 Nov 10, 2020
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,4 @@ tfjs-backend-wasm/wasm-out/*.js
tfjs-backend-wasm/wasm-out/*.wasm
yalc.lock
yarn-error.log
cloudbuild_generated.yml
131 changes: 9 additions & 122 deletions cloudbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,138 +5,25 @@ steps:
id: 'yarn'
args: ['install']

# Run find-affected-packages to find affected files in each folder.
# Generate cloudbuild_generated.yml,
# which builds and tests all affected packages.
- name: 'node:10'
entrypoint: 'yarn'
id: 'find-affected-packages'
args: ['find-affected-packages']
id: 'generate-cloudbuild-for-packages'
args: ['generate-cloudbuild-for-packages']
waitFor: ['yarn']
env:
- 'COMMIT_SHA=$COMMIT_SHA'
- 'BRANCH_NAME=$BRANCH_NAME'
- 'BASE_BRANCH=$_BASE_BRANCH'
- 'NIGHTLY=$_NIGHTLY'

# Core.
# Run the generated cloudbuild file
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-core'
args: ['./scripts/run-build.sh', 'tfjs-core']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# CPU backend.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-backend-cpu'
args: ['./scripts/run-build.sh', 'tfjs-backend-cpu']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Webgl backend.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-backend-webgl'
args: ['./scripts/run-build.sh', 'tfjs-backend-webgl']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Converter.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-converter'
args: ['./scripts/run-build.sh', 'tfjs-converter']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Data.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-data'
args: ['./scripts/run-build.sh', 'tfjs-data']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Layers.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-layers'
args: ['./scripts/run-build.sh', 'tfjs-layers']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Union.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs'
args: ['./scripts/run-build.sh', 'tfjs']
waitFor: ['find-affected-packages']

# Vis.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-vis'
args: ['./scripts/run-build.sh', 'tfjs-vis']
waitFor: ['find-affected-packages']

# WebGPU.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-backend-webgpu'
args: ['./scripts/run-build.sh', 'tfjs-backend-webgpu']
waitFor: ['find-affected-packages']

# WASM.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-backend-wasm'
args: ['./scripts/run-build.sh', 'tfjs-backend-wasm']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# React Native.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-react-native'
args: ['./scripts/run-build.sh', 'tfjs-react-native']
waitFor: ['find-affected-packages']

# Node CPU.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-node'
args: ['./scripts/run-build.sh', 'tfjs-node']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Node GPU.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-node-gpu'
args: ['./scripts/run-build.sh', 'tfjs-node-gpu']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Release notes test
- name: 'node:10'
id: 'test-monorepo'
entrypoint: 'yarn'
args: ['test-release-notes']
waitFor: ['yarn']

# E2E test
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'e2e'
args: ['./scripts/run-build.sh', 'e2e']
waitFor: ['find-affected-packages']
env: ['NIGHTLY=$_NIGHTLY']

# Inference API
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
id: 'tfjs-inference'
args: ['scripts/run-build.sh', 'tfjs-inference']
waitFor: ['find-affected-packages']
id: 'run-cloudbuild'
args: ['./scripts/run-build.sh']
waitFor: ['generate-cloudbuild-for-packages']
env: ['NIGHTLY=$_NIGHTLY']

# General settings.
Expand Down
2 changes: 1 addition & 1 deletion e2e/cloudbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ steps:
id: 'test'
args: ['test-ci']
env: ['BROWSERSTACK_USERNAME=deeplearnjs1', 'NIGHTLY=$_NIGHTLY']

secretEnv: ['BROWSERSTACK_KEY']
waitFor: ['yarn', 'build-deps']

secrets:
- kmsKeyName: projects/learnjs-174218/locations/global/keyRings/tfjs/cryptoKeys/enc
Expand Down
10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@
"@octokit/rest": "15.17.0",
"@types/argparse": "^1.0.38",
"@types/jasmine": "2.8.7",
"@types/node": "^12.7.5",
"@types/mkdirp": "^0.5.2",
"@types/node": "^12.7.5",
"@types/shelljs": "^0.8.7",
"argparse": "^1.0.10",
"chalk": "~2.4.2",
"clang-format": "~1.2.4",
"console-table-printer": "^2.4.32",
"jasmine": "3.1.0",
"shelljs": "~0.8.3",
"js-yaml": "^3.14.0",
"mkdirp": "~0.5.1",
"shelljs": "~0.8.3",
"ts-node": "~8.8.2",
"tslint": "~5.20.0",
"typescript": "3.5.3"
},
"scripts": {
"find-affected-packages": "./scripts/find-affected-packages.js",
"test-packages-ci": "yarn generate-cloudbuild-for-packages && ./scripts/run-build.sh",
"generate-cloudbuild-for-packages": "./scripts/generate_cloudbuild_for_packages.js",
"test-generate-cloudbuild": "jasmine run scripts/generate_cloudbuild_test.js",
"release": "ts-node -s ./scripts/release.ts",
"release-tfjs": "ts-node -s ./scripts/release-tfjs.ts",
"publish-npm": "ts-node -s ./scripts/publish-npm.ts",
Expand Down
14 changes: 14 additions & 0 deletions scripts/cloudbuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
steps:
# Install common dependencies.
- name: 'node:10'
id: 'yarn-common'
entrypoint: 'yarn'
args: ['install']

# Test generate_cloudbuild.js
- name: 'node:10'
dir: 'scripts'
id: 'test-generate-cloudbuild'
entrypoint: 'yarn'
args: ['test-generate-cloudbuild']
waitFor: ['yarn-common']
21 changes: 21 additions & 0 deletions scripts/cloudbuild_general_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
steps:
# Install top-level deps.
- name: 'node:10'
entrypoint: 'yarn'
id: 'yarn-common'
args: ['install']

# General configuration
secrets:
- kmsKeyName: projects/learnjs-174218/locations/global/keyRings/tfjs/cryptoKeys/enc
secretEnv:
BROWSERSTACK_KEY: CiQAkwyoIW0LcnxymzotLwaH4udVTQFBEN4AEA5CA+a3+yflL2ASPQAD8BdZnGARf78MhH5T9rQqyz9HNODwVjVIj64CTkFlUCGrP1B2HX9LXHWHLmtKutEGTeFFX9XhuBzNExA=
FIREBASE_KEY: CiQAkwyoIXmET39jOD3ywloCIa6+WUpu3w49twpMmkMqy0vS+YsSUAAD8BdZQGOL8FKEBxr/1jl0G78OigwlNVHjD3usZobNtlOp8tV/9iacb8zPFqy0SwIO1gvz3HRr+VU7c7LS2qqaTCdacZF+dx3VJNewvdZu
timeout: 3600s
logsBucket: 'gs://tfjs-build-logs'
substitutions:
_NIGHTLY: ''
options:
logStreamingOption: 'STREAM_ON'
machineType: 'N1_HIGHCPU_32'
substitution_option: 'ALLOW_LOOSE'
Loading