)]}'
{
  "commit": "b0087d0ecfdf237f44579eee415010405f329f17",
  "tree": "bb2b703ff1c9871f3bcce22f111865621ce48f22",
  "parents": [
    "37e57013860fdaa36bfd9bcba4cf6533abafa808"
  ],
  "author": {
    "name": "shaod2",
    "email": "shaod@google.com",
    "time": "Thu Oct 29 17:18:00 2026 +0000"
  },
  "committer": {
    "name": "Dennis Shao",
    "email": "shaod@google.com",
    "time": "Wed Nov 04 09:11:08 2026 -0800"
  },
  "message": "gha-ci: run the Go LUCI trybots on GitHub Actions\n\nGitHub (github.com/protocolbuffers/protobuf-go) will become the external\nsource of truth instead of Gerrit: Copybara will turn changes from\nGoogle\u0027s internal repository into GitHub pull requests, and this\nrepository will become a mirror of GitHub. LUCI trybots only run on\nGerrit changes, so GitHub Actions has to run the same tests.\n\nReplace the single TestIntegration job with one job per LUCI trybot that\nCommit-Queue+1 starts for this repository, running the same commands as\ngolangbuild: go1.26 and go1.27 (release branch heads), and gotip plain,\n-race, -longtest and on Debian 11/13, with the same flags, timeouts,\nGOTOOLCHAIN\u003dlocal and GO_BUILDER_NAME. Two trybots are not copied:\n\n- boringcrypto: x/build\u0027s main.star adds it to every repository by\n  default, but GOEXPERIMENT\u003dboringcrypto only changes the crypto/...\n  packages, which this module doesn\u0027t use.\n- misccompile: it builds the tests for 36 secondary ports, but this\n  module has no OS- or architecture-specific code, so most of them add\n  nothing. Instead, three crosscompile jobs, named after the target\n  platforms, build the tests for the main platforms besides linux/amd64\n  (darwin/arm64, linux/arm64, windows/amd64, windows/arm64), 32-bit\n  (linux/386, linux/arm), big-endian (linux/s390x) and WebAssembly\n  (js/wasm, wasip1/wasm) ports.\n\nBazel 8 is no longer needed: TestIntegration only used Bazel to build\nprotoc and conformance_test_runner. With GO_BUILDER_NAME set, the\nlongtest job runs TestIntegration as part of \"go test ./...\" with the\nsame prebuilt protoc_with_conformance v36.2 CIPD package as LUCI.\n\nThe triggers follow test_runner.yml in protocolbuffers/protobuf: pull\nrequests from branches in this repository (such as Copybara\u0027s) run on\nevery commit; pull requests from forks run only after a maintainer adds\nthe \":a: safe for tests\" label, which is then removed, so every new\ncommit needs a new label. Pushes to master and staging and a daily\nschedule also run the tests.\n\nTested in a fork with the repository name changed to the fork: all jobs\npassed on a push to master\n(github.com/shaod2/protobuf-go/actions/runs/41682863541). The previous\nversion, with the same triggers, also passed on a pull request from a\nbranch in the fork (github.com/shaod2/protobuf-go/pull/1).\nTestIntegration also passed locally when run like the longtest job, with\nall 18 subtests including Conformance. The label path for fork pull\nrequests can only be tested once this workflow is on the default branch.\n\nChange-Id: Ib0c41f398879839dde2305a9580678dd8c891edc\nReviewed-on: https://go-review.googlesource.com/c/protobuf/+/856281\nReviewed-by: Dennis Shao \u003cshaod@google.com\u003e\nReviewed-by: Sandy Zhang \u003csandyzhang@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26ffd2bde912216ce51b75719379f23699391518",
      "old_mode": 33188,
      "old_path": ".github/workflows/test.yml",
      "new_id": "aad531a0e5b08a84c21864e059b669c2cbbb8dff",
      "new_mode": 33188,
      "new_path": ".github/workflows/test.yml"
    }
  ]
}
