buildbarn / bb-storage

Storage daemon, capable of storing data for the Remote Execution protocol
Apache License 2.0
142 stars 91 forks source link

feat: publish multi-arch images #199

Closed alexeagle closed 7 months ago

alexeagle commented 7 months ago

Allows bb-storage users to deploy on arm64 architecture, e.g. AWS Graviton. Fixes #198

alexeagle commented 7 months ago

I just learned about #167 , sorry this is replacing that I think

alexeagle commented 7 months ago

Do you think my change is responsible for the gazelle failure on CI?

EdSchouten commented 7 months ago

Do you think my change is responsible for the gazelle failure on CI?

Yes. I can reproduce it by running the commands run by the CI pipeline on my local system. It looks like I can address it by calling gazelle_dependencies() earlier on:

diff --git a/WORKSPACE b/WORKSPACE
index 8806a54..9747956 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -73,6 +73,8 @@ go_rules_dependencies()

 go_register_toolchains(version = "1.21.5")

+gazelle_dependencies()
+
 load("@rules_oci//oci:pull.bzl", "oci_pull")
 load("@rules_oci//oci:repositories.bzl", "LATEST_CRANE_VERSION", "oci_register_toolchains")

@@ -101,8 +103,6 @@ oci_pull(
     ],
 )

-gazelle_dependencies()
-
 http_archive(
     name = "com_github_bazelbuild_buildtools",
     sha256 = "09a94213ea0d4a844e991374511fb0d44650e9c321799ec5d5dd28b250d82ca3",
alexeagle commented 7 months ago

PTAL - I have not integration-tested this by pushing a container and running a service from it.

moroten commented 7 months ago

I created https://github.com/bazel-contrib/rules_oci/pull/531 to make oci_image_index perform the target platform transition instead.

EdSchouten commented 7 months ago

I saw that that PR build of yours failed with some protoc code generation issues. I thought that would be caused by the Bazel 6.1.0 upgrade, so that's why I just did an upgrade to Bazel 6.4.0. Be sure to rebase your PR on top of master to see if it goes through now.

alexeagle commented 7 months ago

@moroten FYI that I tried patching your rules_oci PR but it still fails on linux/i386 in the same way as this PR does.

https://github.com/buildbarn/bb-storage/actions/runs/8397776269/job/23006173303?pr=201

alexeagle commented 7 months ago

@EdSchouten I'm hoping my last commit made it green - do you have something like a label you could apply so the workflow doesn't require a manual approval when I push commits? 🙏🏻

EdSchouten commented 7 months ago

Github auto approves workflows if you have made at least 1 commit to this repo. So after I merge this change, any followup PR made by you should automatically run the build.

alexeagle commented 7 months ago

Hooray it's green, anything else you'd like me to change?

moroten commented 7 months ago

Thank you for merging this. The ideas with https://github.com/bazel-contrib/rules_oci/pull/531 for multi arch images will take some time to get ready.