blob: cdcbee122073fbf16d3a34ac9b28e868bfd5fe4b [file] [log] [blame]
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data")
# Our goal is for this program to be embedded into this Go package. Go embed
# only allows files in the same package directory to be embedded. So we need to
# use a "no-op" genrule to place this binary in the same directory as the
# package source.
genrule(
name = "handle_disk_layout.bin",
srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin"],
outs = ["_handle_disk_layout.bin"],
cmd = "cp $< $@",
)
genrule(
name = "veritysetup.img",
srcs = ["//:veritysetup.tar"],
outs = ["_veritysetup.img"],
cmd = "cp $< $@",
)
genrule(
name = "docker_credential_gcr",
srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr"],
outs = ["docker-credential-gcr"],
cmd = "cp $< $@",
)
go_library(
name = "provisioner",
srcs = [
"config.go",
"disable_auto_update_step.go",
"disk_layout.go",
"gpu_setup_script.go",
"install_gpu_step.go",
"provisioner.go",
"run_script_step.go",
"seal_oem_step.go",
"state.go",
"systemd.go",
],
embedsrcs = [
":handle_disk_layout.bin",
":veritysetup.img",
":docker_credential_gcr",
],
importpath = "github.com/GoogleCloudPlatform/cos-customizer/src/pkg/provisioner",
visibility = ["//visibility:public"],
deps = [
"//src/pkg/tools",
"//src/pkg/tools/partutil",
"//src/pkg/utils",
"@com_google_cloud_go_storage//:storage",
"@org_golang_x_sys//unix",
],
)
go_test(
name = "provisioner_test",
srcs = ["provisioner_test.go"],
data = glob(["testdata/**"]),
embed = [":provisioner"],
deps = [
"//src/pkg/fakes",
"@org_golang_x_sys//unix",
],
)