Add metadata-validator to PDFium

Bug: 479262293
Change-Id: I8b21bb5f2caae1aa62992791875d7f8e61924e3a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/143471
Auto-Submit: Jordan Brown <rop@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/generated/commit-queue.cfg b/generated/commit-queue.cfg
index 7d061f5..8b48fe5 100644
--- a/generated/commit-queue.cfg
+++ b/generated/commit-queue.cfg
@@ -145,6 +145,21 @@
         name: "pdfium/try/mac_xfa_skia_rust_x86"
       }
       builders {
+        name: "pdfium/try/metadata_validator"
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          gerrit_ref_regexp: ".*"
+          path_regexp: ".*/README\\.chromium"
+        }
+        location_filters {
+          gerrit_host_regexp: ".*"
+          gerrit_project_regexp: ".*"
+          gerrit_ref_regexp: ".*"
+          path_regexp: ".*/README\\.pdfium"
+        }
+      }
+      builders {
         name: "pdfium/try/pdfium_presubmit"
         disable_reuse: true
       }
diff --git a/generated/cr-buildbucket.cfg b/generated/cr-buildbucket.cfg
index 490f2f5..5058013 100644
--- a/generated/cr-buildbucket.cfg
+++ b/generated/cr-buildbucket.cfg
@@ -4745,6 +4745,32 @@
       }
     }
     builders {
+      name: "metadata_validator"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-24.04"
+      dimensions: "pool:luci.flex.try"
+      exe {
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "builder_group": "tryserver.client.pdfium",'
+        '  "recipe": "security/metadata_validator",'
+        '  "repo_name": "pdfium"'
+        '}'
+      execution_timeout_secs: 10800
+      build_numbers: YES
+      service_account: "pdfium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
       name: "pdfium_presubmit"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "cores:8"
diff --git a/generated/luci-milo.cfg b/generated/luci-milo.cfg
index f40e28f..daf6790 100644
--- a/generated/luci-milo.cfg
+++ b/generated/luci-milo.cfg
@@ -447,6 +447,9 @@
   builders {
     name: "buildbucket/luci.pdfium.try/pdfium_presubmit"
   }
+  builders {
+    name: "buildbucket/luci.pdfium.try/metadata_validator"
+  }
   builder_view_only: true
 }
 logo_url: "https://storage.googleapis.com/chrome-infra/pdfium-logo.png"
diff --git a/main.star b/main.star
index f97e1d0..6b0af72 100755
--- a/main.star
+++ b/main.star
@@ -119,7 +119,7 @@
         properties.update({"renderers": renderers})
 
     if name.endswith("cxx23"):
-      properties.update({"use_cxx23": True})
+        properties.update({"use_cxx23": True})
 
     return properties
 
@@ -384,6 +384,13 @@
     use_python3 = True,
 )
 
+luci.recipe(
+    name = "security/metadata_validator",
+    cipd_package = _CIPD_PACKAGE,
+    use_bbagent = True,
+    use_python3 = True,
+)
+
 # Buckets
 luci.bucket(
     name = "ci",
@@ -454,6 +461,23 @@
     },
 )
 
+luci.builder(
+    name = "metadata_validator",
+    bucket = "try",
+    executable = "security/metadata_validator",
+    service_account = "pdfium-try-builder@chops-service-accounts.iam.gserviceaccount.com",
+    dimensions = {
+        "cores": "8",
+        "cpu": "x86-64",
+        "os": "Ubuntu-24.04",
+        "pool": "luci.flex.try",
+    },
+    properties = {
+        "builder_group": "tryserver.client.pdfium",
+        "repo_name": "pdfium",
+    },
+)
+
 add_entries_for_builder(name = "android", category = "main|android")
 add_entries_for_builder(name = "android_32", category = "main|android")
 add_entries_for_builder(name = "android_no_v8", category = "no v8", short_name = "android")
@@ -532,6 +556,11 @@
     builder = "try/pdfium_presubmit",
 )
 
+luci.list_view_entry(
+    list_view = "try",
+    builder = "try/metadata_validator",
+)
+
 # CQ
 luci.cq(
     status_host = "chromium-cq-status.appspot.com",
@@ -573,6 +602,13 @@
             builder = "pdfium:try/pdfium_presubmit",
             disable_reuse = True,
         ),
+        luci.cq_tryjob_verifier(
+            builder = "pdfium:try/metadata_validator",
+            location_filters = [
+                cq.location_filter(path_regexp = r".*/README\.chromium"),
+                cq.location_filter(path_regexp = r".*/README\.pdfium"),
+            ],
+        ),
     ],
 )