Upgrade Bazel to 8.3.1 and migrate from WORKSPACE to Bzlmod

Migrate external dependency management from the legacy WORKSPACE and
deps.bzl files to Bzlmod (MODULE.bazel) for compatibility with Bazel
8.3.1:
    - Replace WORKSPACE and deps.bzl with MODULE.bazel using rules_go
      (0.57.0) and gazelle (0.45.0) go_deps extension reading go.mod.
    - Add gazelle:exclude directives to the root BUILD.bazel and
      gazelle:ignore to src/pkg/utils/BUILD.bazel so Gazelle only updates
      Bazel-managed packages.
    - Remove empty testdata glob in deviceinfo/BUILD.bazel to satisfy
      Bazel 8's --incompatible_disallow_empty_glob default.
    - Use errors.Is when checking for storage.ErrObjectNotExist or
      storage.ErrBucketNotExist to handle wrapped errors from newer
      cloud.google.com/go/storage versions.

BUG=None
TEST=bazel test -- //... -//src/pkg/tools/..., bazel run gazelle
RELEASE_NOTE=None

Change-Id: Iebe2c703a5b2667351fcd466198911825ba86f14
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/201794
AI-Review: cloud-image-release <cloud-image-release@prod.google.com>
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Tested-by: Angel Adetula <angeladetula@google.com>
Cloud-Build: 228075978874@cloudbuild.gserviceaccount.com <228075978874@cloudbuild.gserviceaccount.com>
30 files changed
tree: 613b2f834d648bff3c3f57001527f8fba27f51f6
  1. coverage/
  2. release/
  3. src/
  4. testing/
  5. vendor/
  6. .bazelignore
  7. .bazelrc
  8. .gitignore
  9. BUILD.bazel
  10. cloudbuild.yaml
  11. CONTRIBUTING.md
  12. go.mod
  13. go.sum
  14. LICENSE
  15. MODULE.bazel
  16. postsubmit-cloudbuild.yaml
  17. README.md
  18. run_builds.sh
  19. run_unit_tests.sh
README.md

Tools for Container-Optimized OS

This is a repository of various tools developed for Container-Optimized OS. Examples include cos-gpu-installer, cos-toolbox, etc.

See CONTRIBUTING.md for how to contribute.