LUCI: archive also .pdb in GCS
Bug: https://github.com/google/perfetto/issues/631
Change-Id: Ia76f3bb0d4f1240ee0884c6590938f4e213cd687
diff --git a/infra/luci/README.recipes.md b/infra/luci/README.recipes.md
index 085f220..d6290da 100644
--- a/infra/luci/README.recipes.md
+++ b/infra/luci/README.recipes.md
@@ -97,11 +97,11 @@
Recipe for building Perfetto.
-— **def [BuildForPlatform](/infra/luci/recipes/perfetto.py#130)(api, ctx, platform):**
+— **def [BuildForPlatform](/infra/luci/recipes/perfetto.py#136)(api, ctx, platform):**
— **def [GnArgs](/infra/luci/recipes/perfetto.py#73)(platform):**
-— **def [RunSteps](/infra/luci/recipes/perfetto.py#157)(api, repository):**
+— **def [RunSteps](/infra/luci/recipes/perfetto.py#163)(api, repository):**
— **def [UploadArtifact](/infra/luci/recipes/perfetto.py#82)(api, ctx, platform, out_dir, artifact):**
### *recipes* / [windows\_sdk:examples/full](/infra/luci/recipe_modules/windows_sdk/examples/full.py)
diff --git a/infra/luci/recipes/perfetto.expected/ci_win.json b/infra/luci/recipes/perfetto.expected/ci_win.json
index 9687045..64e6844 100644
--- a/infra/luci/recipes/perfetto.expected/ci_win.json
+++ b/infra/luci/recipes/perfetto.expected/ci_win.json
@@ -375,6 +375,38 @@
},
{
"cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]\\resources\\gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]\\gsutil.py",
+ "----",
+ "cp",
+ "[CACHE]\\builder\\perfetto\\out\\windows-amd64\\trace_processor_shell.exe.pdb",
+ "gs://perfetto-luci-artifacts//windows-amd64/trace_processor_shell.exe.pdb"
+ ],
+ "cwd": "[CACHE]\\builder\\perfetto",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "perfetto:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Artifact upload.gsutil upload (2)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/trace_processor_shell.exe.pdb@@@"
+ ]
+ },
+ {
+ "cmd": [
"cipd.bat",
"pkg-build",
"-pkg-def",
@@ -475,7 +507,7 @@
"hostname": "rdbhost"
}
},
- "name": "Artifact upload.gsutil upload (2)",
+ "name": "Artifact upload.gsutil upload (3)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/traceconv.exe@@@"
@@ -483,6 +515,38 @@
},
{
"cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]\\resources\\gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]\\gsutil.py",
+ "----",
+ "cp",
+ "[CACHE]\\builder\\perfetto\\out\\windows-amd64\\traceconv.exe.pdb",
+ "gs://perfetto-luci-artifacts//windows-amd64/traceconv.exe.pdb"
+ ],
+ "cwd": "[CACHE]\\builder\\perfetto",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "perfetto:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Artifact upload.gsutil upload (4)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/traceconv.exe.pdb@@@"
+ ]
+ },
+ {
+ "cmd": [
"cipd.bat",
"pkg-build",
"-pkg-def",
@@ -583,7 +647,7 @@
"hostname": "rdbhost"
}
},
- "name": "Artifact upload.gsutil upload (3)",
+ "name": "Artifact upload.gsutil upload (5)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/perfetto.exe@@@"
@@ -591,6 +655,38 @@
},
{
"cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]\\resources\\gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]\\gsutil.py",
+ "----",
+ "cp",
+ "[CACHE]\\builder\\perfetto\\out\\windows-amd64\\perfetto.exe.pdb",
+ "gs://perfetto-luci-artifacts//windows-amd64/perfetto.exe.pdb"
+ ],
+ "cwd": "[CACHE]\\builder\\perfetto",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "perfetto:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Artifact upload.gsutil upload (6)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/perfetto.exe.pdb@@@"
+ ]
+ },
+ {
+ "cmd": [
"cipd.bat",
"pkg-build",
"-pkg-def",
@@ -691,7 +787,7 @@
"hostname": "rdbhost"
}
},
- "name": "Artifact upload.gsutil upload (4)",
+ "name": "Artifact upload.gsutil upload (7)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
"@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/traced.exe@@@"
@@ -699,6 +795,38 @@
},
{
"cmd": [
+ "python3",
+ "-u",
+ "RECIPE_MODULE[depot_tools::gsutil]\\resources\\gsutil_smart_retry.py",
+ "--",
+ "RECIPE_REPO[depot_tools]\\gsutil.py",
+ "----",
+ "cp",
+ "[CACHE]\\builder\\perfetto\\out\\windows-amd64\\traced.exe.pdb",
+ "gs://perfetto-luci-artifacts//windows-amd64/traced.exe.pdb"
+ ],
+ "cwd": "[CACHE]\\builder\\perfetto",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "perfetto:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Artifact upload.gsutil upload (8)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/perfetto-luci-artifacts//windows-amd64/traced.exe.pdb@@@"
+ ]
+ },
+ {
+ "cmd": [
"cipd.bat",
"pkg-build",
"-pkg-def",
diff --git a/infra/luci/recipes/perfetto.py b/infra/luci/recipes/perfetto.py
index d95c72d..7e9586b 100644
--- a/infra/luci/recipes/perfetto.py
+++ b/infra/luci/recipes/perfetto.py
@@ -97,6 +97,12 @@
gcs_target_path = '{}/{}/{}'.format(gcs_upload_dir, platform, artifact_ext)
api.gsutil.upload(source_path, 'perfetto-luci-artifacts', gcs_target_path)
+ # Uploads also the .pdb (debug symbols) to GCS.
+ pdb_path = exe_dir.join(artifact_ext + '.pdb')
+ if api.platform.is_win:
+ api.gsutil.upload(pdb_path, 'perfetto-luci-artifacts',
+ gcs_target_path + '.pdb')
+
# Create the CIPD package definition from the artifact path.
cipd_pkg_name = 'perfetto/{}/{}'.format(artifact['name'], platform)
pkg_def = api.cipd.PackageDefinition(