Skip to content

Commit 80ea3aa

Browse files
Nicolas Lopezk8s-ci-robot
Nicolas Lopez
authored andcommitted
refactor go dependencies to a separate bzl file (#936)
* refactor go dependencies to a separate bzl file * add simple example that exersises minimal deps in WORKSPACE * fix docs * extend timeout for flaky cloudbluild, reduce timeout for another cloudbuild that has a value that is too high * last doc fixes * removing bolierplate and addressing comments
1 parent 1bd7593 commit 80ea3aa

File tree

20 files changed

+286
-141
lines changed

20 files changed

+286
-141
lines changed

README.md

Lines changed: 77 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,21 @@ docker_toolchain_configure(
120120
client_config="/path/to/docker/client/config",
121121
)
122122

123-
# This is NOT needed when going through the language lang_image
124-
# "repositories" function(s).
125123
load(
126124
"@io_bazel_rules_docker//repositories:repositories.bzl",
127125
container_repositories = "repositories",
128126
)
129127
container_repositories()
130128

129+
# This is NOT needed when going through the language lang_image
130+
# "repositories" function(s).
131+
load(
132+
"@io_bazel_rules_docker//repositories:go_repositories.bzl",
133+
container_go_deps = "go_deps",
134+
)
135+
136+
container_go_deps()
137+
131138
load(
132139
"@io_bazel_rules_docker//container:container.bzl",
133140
"container_pull",
@@ -325,6 +332,13 @@ for more details.
325332
To use `cc_image`, add the following to `WORKSPACE`:
326333

327334
```python
335+
load(
336+
"@io_bazel_rules_docker//repositories:repositories.bzl",
337+
container_repositories = "repositories",
338+
)
339+
340+
container_repositories()
341+
328342
load(
329343
"@io_bazel_rules_docker//cc:image.bzl",
330344
_cc_image_repos = "repositories",
@@ -375,6 +389,13 @@ and see <a href=#go_image-custom-base>go_image (custom base)</a> example below.
375389
To use `py_image`, add the following to `WORKSPACE`:
376390

377391
```python
392+
load(
393+
"@io_bazel_rules_docker//repositories:repositories.bzl",
394+
container_repositories = "repositories",
395+
)
396+
397+
container_repositories()
398+
378399
load(
379400
"@io_bazel_rules_docker//python:image.bzl",
380401
_py_image_repos = "repositories",
@@ -518,7 +539,13 @@ npm_install(
518539
package_json = "//:package.json",
519540
)
520541

521-
# Download base images, etc.
542+
load(
543+
"@io_bazel_rules_docker//repositories:repositories.bzl",
544+
container_repositories = "repositories",
545+
)
546+
547+
container_repositories()
548+
522549
load(
523550
"@io_bazel_rules_docker//nodejs:image.bzl",
524551
_nodejs_image_repos = "repositories",
@@ -558,16 +585,13 @@ To use `go_image`, add the following to `WORKSPACE`:
558585
```python
559586
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
560587

561-
# You *must* import the Go rules before setting up the go_image rules.
562-
http_archive(
563-
name = "io_bazel_rules_go",
564-
# Replace with a real SHA256 checksum
565-
sha256 = "{SHA256}"
566-
# Replace with a real commit SHA
567-
strip_prefix = "rules_go-{HEAD}",
568-
urls = ["https://github.com/bazelbuild/rules_go/archive/{HEAD}.tar.gz"],
588+
load(
589+
"@io_bazel_rules_docker//repositories:repositories.bzl",
590+
container_repositories = "repositories",
569591
)
570592

593+
container_repositories()
594+
571595
load(
572596
"@io_bazel_rules_docker//go:image.bzl",
573597
_go_image_repos = "repositories",
@@ -662,6 +686,13 @@ go_image(
662686
To use `java_image`, add the following to `WORKSPACE`:
663687

664688
```python
689+
load(
690+
"@io_bazel_rules_docker//repositories:repositories.bzl",
691+
container_repositories = "repositories",
692+
)
693+
694+
container_repositories()
695+
665696
load(
666697
"@io_bazel_rules_docker//java:image.bzl",
667698
_java_image_repos = "repositories",
@@ -694,6 +725,13 @@ and see <a href=#go_image-custom-base>go_image (custom base)</a> example.
694725
To use `war_image`, add the following to `WORKSPACE`:
695726

696727
```python
728+
load(
729+
"@io_bazel_rules_docker//repositories:repositories.bzl",
730+
container_repositories = "repositories",
731+
)
732+
733+
container_repositories()
734+
697735
load(
698736
"@io_bazel_rules_docker//java:image.bzl",
699737
_java_image_repos = "repositories",
@@ -752,6 +790,13 @@ load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
752790

753791
scala_repositories()
754792

793+
load(
794+
"@io_bazel_rules_docker//repositories:repositories.bzl",
795+
container_repositories = "repositories",
796+
)
797+
798+
container_repositories()
799+
755800
load(
756801
"@io_bazel_rules_docker//scala:image.bzl",
757802
_scala_image_repos = "repositories",
@@ -802,6 +847,13 @@ load("@io_bazel_rules_groovy//groovy:groovy.bzl", "groovy_repositories")
802847

803848
groovy_repositories()
804849

850+
load(
851+
"@io_bazel_rules_docker//repositories:repositories.bzl",
852+
container_repositories = "repositories",
853+
)
854+
855+
container_repositories()
856+
805857
load(
806858
"@io_bazel_rules_docker//groovy:image.bzl",
807859
_groovy_image_repos = "repositories",
@@ -852,6 +904,13 @@ load("@io_bazel_rules_rust//rust:repositories.bzl", "rust_repositories")
852904

853905
rust_repositories()
854906

907+
load(
908+
"@io_bazel_rules_docker//repositories:repositories.bzl",
909+
container_repositories = "repositories",
910+
)
911+
912+
container_repositories()
913+
855914
load(
856915
"@io_bazel_rules_docker//rust:image.bzl",
857916
_rust_image_repos = "repositories",
@@ -901,6 +960,13 @@ load("@io_bazel_rules_d//d:d.bzl", "d_repositories")
901960

902961
d_repositories()
903962

963+
load(
964+
"@io_bazel_rules_docker//repositories:repositories.bzl",
965+
container_repositories = "repositories",
966+
)
967+
968+
container_repositories()
969+
904970
load(
905971
"@io_bazel_rules_docker//d:image.bzl",
906972
_d_image_repos = "repositories",

WORKSPACE

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ load(
3333

3434
container_repositories()
3535

36+
load(
37+
"//repositories:go_repositories.bzl",
38+
container_go_deps = "go_deps",
39+
)
40+
41+
container_go_deps()
42+
3643
load(
3744
"//container:new_pull.bzl",
3845
"new_container_pull",
@@ -253,26 +260,6 @@ load("@io_bazel_rules_groovy//groovy:groovy.bzl", "groovy_repositories")
253260

254261
groovy_repositories()
255262

256-
# For our go_image test.
257-
http_archive(
258-
name = "io_bazel_rules_go",
259-
sha256 = "f04d2373bcaf8aa09bccb08a98a57e721306c8f6043a2a0ee610fd6853dcde3d",
260-
urls = [
261-
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz",
262-
"https://github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz",
263-
],
264-
)
265-
266-
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
267-
268-
go_rules_dependencies()
269-
270-
go_register_toolchains()
271-
272-
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
273-
274-
gazelle_dependencies()
275-
276263
# Have the go_image dependencies for testing.
277264
load(
278265
"//go:image.bzl",
@@ -388,15 +375,3 @@ rbe_autoconfig(
388375
)
389376

390377
# gazelle:repo bazel_gazelle
391-
392-
go_repository(
393-
name = "com_github_google_go_containerregistry",
394-
commit = "6991786f93129be24f857070fe94754a9ea02a0a",
395-
importpath = "github.com/google/go-containerregistry",
396-
)
397-
398-
go_repository(
399-
name = "com_github_pkg_errors",
400-
commit = "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7",
401-
importpath = "github.com/pkg/errors",
402-
)

cc/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ load(
2525
"app_layer",
2626
)
2727
load(
28-
"//repositories:repositories.bzl",
29-
_repositories = "repositories",
28+
"//repositories:go_repositories.bzl",
29+
_go_deps = "go_deps",
3030
)
3131

3232
# Load the resolved digests.
@@ -35,10 +35,10 @@ load(":cc.bzl", "DIGESTS")
3535
def repositories():
3636
"""Import the dependencies for the cc_image rule.
3737
38-
Call the core "repositories" function to reduce boilerplate. This is
38+
Call the core "go_deps" function to reduce boilerplate. This is
3939
idempotent if folks call it themselves.
4040
"""
41-
_repositories()
41+
_go_deps()
4242

4343
excludes = native.existing_rules().keys()
4444
if "cc_image_base" not in excludes:

container/go/cloudbuild.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
# This cloudbuild.yaml file is used to release the go puller binary.
1616

17-
timeout: 21600s
17+
timeout: 3600s
1818
options:
1919
machineType: "N1_HIGHCPU_32"
2020

go/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ load(
2929
"app_layer",
3030
)
3131
load(
32-
"//repositories:repositories.bzl",
33-
_repositories = "repositories",
32+
"//repositories:go_repositories.bzl",
33+
_go_deps = "go_deps",
3434
)
3535

3636
# Load the resolved digests.
@@ -39,10 +39,10 @@ load(":go.bzl", "DIGESTS")
3939
def repositories():
4040
"""Import the dependencies of the go_image rule.
4141
42-
Call the core "repositories" function to reduce boilerplate. This is
42+
Call the core "go_deps" function to reduce boilerplate. This is
4343
idempotent if folks call it themselves.
4444
"""
45-
_repositories()
45+
_go_deps()
4646

4747
excludes = native.existing_rules().keys()
4848
if "go_image_base" not in excludes:

java/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ load(
3131
lang_image = "image",
3232
)
3333
load(
34-
"//repositories:repositories.bzl",
35-
_repositories = "repositories",
34+
"//repositories:go_repositories.bzl",
35+
_go_deps = "go_deps",
3636
)
3737

3838
# Load the resolved digests.
@@ -48,10 +48,10 @@ load(
4848
def repositories():
4949
"""Import the dependencies of the java_image rule.
5050
51-
Call the core "repositories" function to reduce boilerplate. This is
51+
Call the core "go_deps" function to reduce boilerplate. This is
5252
idempotent if folks call it themselves.
5353
"""
54-
_repositories()
54+
_go_deps()
5555

5656
excludes = native.existing_rules().keys()
5757
if "java_image_base" not in excludes:

nodejs/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ load(
2828
lang_image = "image",
2929
)
3030
load(
31-
"//repositories:repositories.bzl",
32-
_repositories = "repositories",
31+
"//repositories:go_repositories.bzl",
32+
_go_deps = "go_deps",
3333
)
3434

3535
# Load the resolved digests.
@@ -38,10 +38,10 @@ load(":nodejs.bzl", "DIGESTS")
3838
def repositories():
3939
"""Import the dependencies of the nodejs_image rule.
4040
41-
Call the core "repositories" function to reduce boilerplate. This is
41+
Call the core "go_deps" function to reduce boilerplate. This is
4242
idempotent if folks call it themselves.
4343
"""
44-
_repositories()
44+
_go_deps()
4545

4646
excludes = native.existing_rules().keys()
4747
if "nodejs_image_base" not in excludes:

python/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ load(
2626
"filter_layer",
2727
)
2828
load(
29-
"//repositories:repositories.bzl",
30-
_repositories = "repositories",
29+
"//repositories:go_repositories.bzl",
30+
_go_deps = "go_deps",
3131
)
3232

3333
# Load the resolved digests.
@@ -36,10 +36,10 @@ load(":python.bzl", "DIGESTS")
3636
def repositories():
3737
"""Import the dependencies of the py_image rule.
3838
39-
Call the core "repositories" function to reduce boilerplate. This is
39+
Call the core "go_deps" function to reduce boilerplate. This is
4040
idempotent if folks call it themselves.
4141
"""
42-
_repositories()
42+
_go_deps()
4343

4444
# Register the default py_toolchain for containerized execution
4545
native.register_toolchains("@io_bazel_rules_docker//toolchains/python:container_py_toolchain")

python3/image.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ load(
2525
"app_layer",
2626
)
2727
load(
28-
"//repositories:repositories.bzl",
29-
_repositories = "repositories",
28+
"//repositories:go_repositories.bzl",
29+
_go_deps = "go_deps",
3030
)
3131

3232
# Load the resolved digests.
@@ -35,10 +35,10 @@ load(":python3.bzl", "DIGESTS")
3535
def repositories():
3636
"""Import the dependencies of the py3_image rule.
3737
38-
Call the core "repositories" function to reduce boilerplate. This is
38+
Call the core "go_deps" function to reduce boilerplate. This is
3939
idempotent if folks call it themselves.
4040
"""
41-
_repositories()
41+
_go_deps()
4242

4343
# Register the default py_toolchain for containerized execution
4444
native.register_toolchains("@io_bazel_rules_docker//toolchains/python:container_py_toolchain")

0 commit comments

Comments
 (0)