Add bots to push apps from skia/skia-wasm docker images

The DAG of tasks looks correct in trybot runs:
* PushAppsFromSkiaDockerImage : https://task-scheduler.skia.org/job/Mpjs8xzG975AtyXiqtjJ
* PushAppsFromWASMDockerImage : https://task-scheduler.skia.org/job/qrnzS6DZ764tXktCdT8U
* PushAppsFromSkiaWASMDockerImages : https://task-scheduler.skia.org/job/92nAAKGATVH141oDNtHI

Bug: skia:9514
Change-Id: I7b62a4f70e60f762844f0c5caea5607ce0826098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261536
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
This commit is contained in:
Ravi Mistry 2019-12-26 10:33:32 -05:00 committed by Skia Commit-Bot
parent 07d744fb8a
commit e19d055814
4 changed files with 429 additions and 0 deletions

View File

@ -15,4 +15,7 @@ cd skia
# Build task drivers from the infra repo.
export GOBIN="${1}"
go install -v go.skia.org/infra/infra/bots/task_drivers/build_push_docker_image
go install -v go.skia.org/infra/infra/bots/task_drivers/push_apps_from_skia_image
go install -v go.skia.org/infra/infra/bots/task_drivers/push_apps_from_skia_wasm_images
go install -v go.skia.org/infra/infra/bots/task_drivers/push_apps_from_wasm_image
go install -v go.skia.org/infra/infra/bots/task_drivers/update_go_deps

View File

@ -895,6 +895,7 @@ func (b *builder) createDockerImage(name, imageName, imageDir string) string {
"--patch_issue", specs.PLACEHOLDER_ISSUE,
"--patch_set", specs.PLACEHOLDER_PATCHSET,
"--patch_server", specs.PLACEHOLDER_CODEREVIEW_SERVER,
"--swarm_out_dir", specs.PLACEHOLDER_ISOLATED_OUTDIR,
"--alsologtostderr",
},
Dependencies: []string{BUILD_TASK_DRIVERS_NAME},
@ -909,6 +910,128 @@ func (b *builder) createDockerImage(name, imageName, imageDir string) string {
return name
}
// createPushAppsFromSkiaDockerImage creates and pushes docker images of some apps
// (eg: fiddler, debugger, api) using the skia-release-v2 docker image.
func (b *builder) createPushAppsFromSkiaDockerImage(name string) string {
cipd := append([]*specs.CipdPackage{}, specs.CIPD_PKGS_GIT...)
cipd = append(cipd, b.MustGetCipdPackageFromAsset("go"))
cipd = append(cipd, b.MustGetCipdPackageFromAsset("protoc"))
t := &specs.TaskSpec{
Caches: append(CACHES_GO, CACHES_DOCKER...),
CipdPackages: cipd,
Command: []string{
"./push_apps_from_skia_image",
"--project_id", "skia-swarming-bots",
"--task_id", specs.PLACEHOLDER_TASK_ID,
"--task_name", name,
"--workdir", ".",
"--gerrit_project", "buildbot",
"--gerrit_url", "https://skia-review.googlesource.com",
"--repo", specs.PLACEHOLDER_REPO,
"--revision", specs.PLACEHOLDER_REVISION,
"--patch_issue", specs.PLACEHOLDER_ISSUE,
"--patch_set", specs.PLACEHOLDER_PATCHSET,
"--patch_server", specs.PLACEHOLDER_CODEREVIEW_SERVER,
"--alsologtostderr",
},
Dependencies: []string{
BUILD_TASK_DRIVERS_NAME,
b.createDockerImage("Housekeeper-PerCommit-CreateDockerImage_Skia_Release", "skia-release-v2", filepath.Join("docker", "skia-release")),
},
Dimensions: b.dockerGceDimensions(),
EnvPrefixes: map[string][]string{
"PATH": {"cipd_bin_packages", "cipd_bin_packages/bin", "go/go/bin"},
},
Isolate: "empty.isolate",
ServiceAccount: b.cfg.ServiceAccountCompile,
}
b.MustAddTask(name, t)
return name
}
// createPushAppsFromWASMDockerImage creates and pushes docker images of some apps
// (eg: jsfiddle, skottie, particles) using the skia-wasm-release-v2 docker image.
func (b *builder) createPushAppsFromWASMDockerImage(name string) string {
cipd := append([]*specs.CipdPackage{}, specs.CIPD_PKGS_GIT...)
cipd = append(cipd, b.MustGetCipdPackageFromAsset("go"))
cipd = append(cipd, b.MustGetCipdPackageFromAsset("protoc"))
t := &specs.TaskSpec{
Caches: append(CACHES_GO, CACHES_DOCKER...),
CipdPackages: cipd,
Command: []string{
"./push_apps_from_wasm_image",
"--project_id", "skia-swarming-bots",
"--task_id", specs.PLACEHOLDER_TASK_ID,
"--task_name", name,
"--workdir", ".",
"--gerrit_project", "buildbot",
"--gerrit_url", "https://skia-review.googlesource.com",
"--repo", specs.PLACEHOLDER_REPO,
"--revision", specs.PLACEHOLDER_REVISION,
"--patch_issue", specs.PLACEHOLDER_ISSUE,
"--patch_set", specs.PLACEHOLDER_PATCHSET,
"--patch_server", specs.PLACEHOLDER_CODEREVIEW_SERVER,
"--alsologtostderr",
},
Dependencies: []string{
BUILD_TASK_DRIVERS_NAME,
b.createDockerImage("Housekeeper-PerCommit-CreateDockerImage_Skia_WASM_Release", "skia-wasm-release-v2", filepath.Join("docker", "skia-wasm-release")),
},
Dimensions: b.dockerGceDimensions(),
EnvPrefixes: map[string][]string{
"PATH": {"cipd_bin_packages", "cipd_bin_packages/bin", "go/go/bin"},
},
Isolate: "empty.isolate",
ServiceAccount: b.cfg.ServiceAccountCompile,
}
b.MustAddTask(name, t)
return name
}
// createPushAppsFromSkiaWASMDockerImages creates and pushes docker images of some apps
// (eg: debugger-assets) using the skia-release-v2 and skia-wasm-release-v2
// docker images.
func (b *builder) createPushAppsFromSkiaWASMDockerImages(name string) string {
cipd := append([]*specs.CipdPackage{}, specs.CIPD_PKGS_GIT...)
cipd = append(cipd, b.MustGetCipdPackageFromAsset("go"))
cipd = append(cipd, b.MustGetCipdPackageFromAsset("protoc"))
t := &specs.TaskSpec{
Caches: append(CACHES_GO, CACHES_DOCKER...),
CipdPackages: cipd,
Command: []string{
"./push_apps_from_skia_wasm_images",
"--project_id", "skia-swarming-bots",
"--task_id", specs.PLACEHOLDER_TASK_ID,
"--task_name", name,
"--workdir", ".",
"--gerrit_project", "buildbot",
"--gerrit_url", "https://skia-review.googlesource.com",
"--repo", specs.PLACEHOLDER_REPO,
"--revision", specs.PLACEHOLDER_REVISION,
"--patch_issue", specs.PLACEHOLDER_ISSUE,
"--patch_set", specs.PLACEHOLDER_PATCHSET,
"--patch_server", specs.PLACEHOLDER_CODEREVIEW_SERVER,
"--alsologtostderr",
},
Dependencies: []string{
BUILD_TASK_DRIVERS_NAME,
b.createDockerImage("Housekeeper-PerCommit-CreateDockerImage_Skia_Release", "skia-release-v2", filepath.Join("docker", "skia-release")),
b.createDockerImage("Housekeeper-PerCommit-CreateDockerImage_Skia_WASM_Release", "skia-wasm-release-v2", filepath.Join("docker", "skia-wasm-release")),
},
Dimensions: b.dockerGceDimensions(),
EnvPrefixes: map[string][]string{
"PATH": {"cipd_bin_packages", "cipd_bin_packages/bin", "go/go/bin"},
},
Isolate: "empty.isolate",
ServiceAccount: b.cfg.ServiceAccountCompile,
}
b.MustAddTask(name, t)
return name
}
// isolateAssetConfig represents a task which copies a CIPD package into
// isolate.
type isolateAssetCfg struct {
@ -1483,6 +1606,15 @@ func (b *builder) process(name string) {
}
}
// Push apps from docker image.
if strings.Contains(name, "PushAppsFromSkiaDockerImage") {
deps = append(deps, b.createPushAppsFromSkiaDockerImage(name))
} else if strings.Contains(name, "PushAppsFromWASMDockerImage") {
deps = append(deps, b.createPushAppsFromWASMDockerImage(name))
} else if strings.Contains(name, "PushAppsFromSkiaWASMDockerImages") {
deps = append(deps, b.createPushAppsFromSkiaWASMDockerImages(name))
}
// Infra tests.
if strings.Contains(name, "Housekeeper-PerCommit-InfraTests") {
deps = append(deps, b.infra(name))
@ -1518,6 +1650,7 @@ func (b *builder) process(name string) {
name != "Housekeeper-PerCommit" &&
name != BUILD_TASK_DRIVERS_NAME &&
!strings.Contains(name, "CreateDockerImage") &&
!strings.Contains(name, "PushAppsFrom") &&
!strings.Contains(name, "Android_Framework") &&
!strings.Contains(name, "G3_Framework") &&
!strings.Contains(name, "RecreateSKPs") &&

View File

@ -157,6 +157,9 @@
"Housekeeper-PerCommit-IsolateSKP",
"Housekeeper-PerCommit-IsolateSVG",
"Housekeeper-PerCommit-IsolateSkImage",
"Housekeeper-PerCommit-PushAppsFromSkiaDockerImage",
"Housekeeper-PerCommit-PushAppsFromSkiaWASMDockerImages",
"Housekeeper-PerCommit-PushAppsFromWASMDockerImage",
"Housekeeper-Weekly-RecreateSKPs",
"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android",
"Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-All-Android_SkottieTracing",

View File

@ -801,6 +801,21 @@
"Housekeeper-PerCommit-IsolateSkImage"
]
},
"Housekeeper-PerCommit-PushAppsFromSkiaDockerImage": {
"tasks": [
"Housekeeper-PerCommit-PushAppsFromSkiaDockerImage"
]
},
"Housekeeper-PerCommit-PushAppsFromSkiaWASMDockerImages": {
"tasks": [
"Housekeeper-PerCommit-PushAppsFromSkiaWASMDockerImages"
]
},
"Housekeeper-PerCommit-PushAppsFromWASMDockerImage": {
"tasks": [
"Housekeeper-PerCommit-PushAppsFromWASMDockerImage"
]
},
"Housekeeper-Weekly-RecreateSKPs": {
"tasks": [
"Housekeeper-Weekly-RecreateSKPs"
@ -14453,6 +14468,8 @@
"<(PATCHSET)",
"--patch_server",
"<(CODEREVIEW_SERVER)",
"--swarm_out_dir",
"${ISOLATED_OUTDIR}",
"--alsologtostderr"
],
"dependencies": [
@ -14546,6 +14563,8 @@
"<(PATCHSET)",
"--patch_server",
"<(CODEREVIEW_SERVER)",
"--swarm_out_dir",
"${ISOLATED_OUTDIR}",
"--alsologtostderr"
],
"dependencies": [
@ -14932,6 +14951,277 @@
"idempotent": true,
"isolate": "empty.isolate"
},
"Housekeeper-PerCommit-PushAppsFromSkiaDockerImage": {
"caches": [
{
"name": "go_cache",
"path": "cache/go_cache"
},
{
"name": "gopath",
"path": "cache/gopath"
},
{
"name": "docker",
"path": "cache/docker"
}
],
"cipd_packages": [
{
"name": "infra/git/${platform}",
"path": "cipd_bin_packages",
"version": "version:2.24.0.chromium16"
},
{
"name": "infra/tools/git/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "infra/tools/luci/git-credential-luci/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "skia/bots/go",
"path": "go",
"version": "version:8"
},
{
"name": "skia/bots/protoc",
"path": "protoc",
"version": "version:0"
}
],
"command": [
"./push_apps_from_skia_image",
"--project_id",
"skia-swarming-bots",
"--task_id",
"<(TASK_ID)",
"--task_name",
"Housekeeper-PerCommit-PushAppsFromSkiaDockerImage",
"--workdir",
".",
"--gerrit_project",
"buildbot",
"--gerrit_url",
"https://skia-review.googlesource.com",
"--repo",
"<(REPO)",
"--revision",
"<(REVISION)",
"--patch_issue",
"<(ISSUE)",
"--patch_set",
"<(PATCHSET)",
"--patch_server",
"<(CODEREVIEW_SERVER)",
"--alsologtostderr"
],
"dependencies": [
"Housekeeper-PerCommit-BuildTaskDrivers",
"Housekeeper-PerCommit-CreateDockerImage_Skia_Release"
],
"dimensions": [
"cpu:x86-64-Haswell_GCE",
"gpu:none",
"machine_type:n1-standard-16",
"os:Debian-9.8",
"pool:Skia",
"docker_installed:true"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin",
"go/go/bin"
]
},
"isolate": "empty.isolate",
"service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com"
},
"Housekeeper-PerCommit-PushAppsFromSkiaWASMDockerImages": {
"caches": [
{
"name": "go_cache",
"path": "cache/go_cache"
},
{
"name": "gopath",
"path": "cache/gopath"
},
{
"name": "docker",
"path": "cache/docker"
}
],
"cipd_packages": [
{
"name": "infra/git/${platform}",
"path": "cipd_bin_packages",
"version": "version:2.24.0.chromium16"
},
{
"name": "infra/tools/git/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "infra/tools/luci/git-credential-luci/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "skia/bots/go",
"path": "go",
"version": "version:8"
},
{
"name": "skia/bots/protoc",
"path": "protoc",
"version": "version:0"
}
],
"command": [
"./push_apps_from_skia_wasm_images",
"--project_id",
"skia-swarming-bots",
"--task_id",
"<(TASK_ID)",
"--task_name",
"Housekeeper-PerCommit-PushAppsFromSkiaWASMDockerImages",
"--workdir",
".",
"--gerrit_project",
"buildbot",
"--gerrit_url",
"https://skia-review.googlesource.com",
"--repo",
"<(REPO)",
"--revision",
"<(REVISION)",
"--patch_issue",
"<(ISSUE)",
"--patch_set",
"<(PATCHSET)",
"--patch_server",
"<(CODEREVIEW_SERVER)",
"--alsologtostderr"
],
"dependencies": [
"Housekeeper-PerCommit-BuildTaskDrivers",
"Housekeeper-PerCommit-CreateDockerImage_Skia_Release",
"Housekeeper-PerCommit-CreateDockerImage_Skia_WASM_Release"
],
"dimensions": [
"cpu:x86-64-Haswell_GCE",
"gpu:none",
"machine_type:n1-standard-16",
"os:Debian-9.8",
"pool:Skia",
"docker_installed:true"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin",
"go/go/bin"
]
},
"isolate": "empty.isolate",
"service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com"
},
"Housekeeper-PerCommit-PushAppsFromWASMDockerImage": {
"caches": [
{
"name": "go_cache",
"path": "cache/go_cache"
},
{
"name": "gopath",
"path": "cache/gopath"
},
{
"name": "docker",
"path": "cache/docker"
}
],
"cipd_packages": [
{
"name": "infra/git/${platform}",
"path": "cipd_bin_packages",
"version": "version:2.24.0.chromium16"
},
{
"name": "infra/tools/git/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "infra/tools/luci/git-credential-luci/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:af7d2ebd14e9bdad51ff1afacbf37f49815ad27b"
},
{
"name": "skia/bots/go",
"path": "go",
"version": "version:8"
},
{
"name": "skia/bots/protoc",
"path": "protoc",
"version": "version:0"
}
],
"command": [
"./push_apps_from_wasm_image",
"--project_id",
"skia-swarming-bots",
"--task_id",
"<(TASK_ID)",
"--task_name",
"Housekeeper-PerCommit-PushAppsFromWASMDockerImage",
"--workdir",
".",
"--gerrit_project",
"buildbot",
"--gerrit_url",
"https://skia-review.googlesource.com",
"--repo",
"<(REPO)",
"--revision",
"<(REVISION)",
"--patch_issue",
"<(ISSUE)",
"--patch_set",
"<(PATCHSET)",
"--patch_server",
"<(CODEREVIEW_SERVER)",
"--alsologtostderr"
],
"dependencies": [
"Housekeeper-PerCommit-BuildTaskDrivers",
"Housekeeper-PerCommit-CreateDockerImage_Skia_WASM_Release"
],
"dimensions": [
"cpu:x86-64-Haswell_GCE",
"gpu:none",
"machine_type:n1-standard-16",
"os:Debian-9.8",
"pool:Skia",
"docker_installed:true"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin",
"go/go/bin"
]
},
"isolate": "empty.isolate",
"service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com"
},
"Housekeeper-Weekly-RecreateSKPs": {
"caches": [
{