Skip to content

Commit

Permalink
chore: use rules_workflows for CircleCI config generation
Browse files Browse the repository at this point in the history
  • Loading branch information
gregmagolan committed Feb 6, 2024
1 parent e71ed0b commit 3b6024d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 95 deletions.
48 changes: 0 additions & 48 deletions .aspect/workflows/deps.bzl

This file was deleted.

54 changes: 9 additions & 45 deletions .circleci/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,50 +1,14 @@
load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_file")
load("@aspect_rules_workflows//workflows:defs.bzl", "circleci_aspect_workflows_config", "circleci_merged_config")

CIRCLECI_ORG = "aspect-build"

CIRCLECI_USER_CONFIG_FILE = "//.circleci:user-config.yml"

alias(
name = "rosetta",
actual = select({
"@bazel_tools//src/conditions:darwin_arm64": "@rosetta_darwin_aarch64//file:rosetta",
"@bazel_tools//src/conditions:darwin_x86_64": "@rosetta_darwin_x86_64//file:rosetta",
"@bazel_tools//src/conditions:linux_aarch64": "@rosetta_linux_aarch64//file:rosetta",
"@bazel_tools//src/conditions:linux_x86_64": "@rosetta_linux_x86_64//file:rosetta",
}),
)

alias(
name = "circleci-config-merge",
actual = select({
"@bazel_tools//src/conditions:darwin_arm64": "@circleci_config_merge_darwin_aarch64//:circleci-config-merge",
"@bazel_tools//src/conditions:darwin_x86_64": "@circleci_config_merge_darwin_x86_64//:circleci-config-merge",
"@bazel_tools//src/conditions:linux_aarch64": "@circleci_config_merge_linux_aarch64//:circleci-config-merge",
"@bazel_tools//src/conditions:linux_x86_64": "@circleci_config_merge_linux_x86_64//:circleci-config-merge",
}),
circleci_aspect_workflows_config(
name = "aspect-workflows-config",
circleci_org = "aspect-build",
)

genrule(
name = "aspect_workflows_config",
srcs = ["//.aspect/workflows:config.yaml"],
outs = [":aspect-workflows-config.yml"],
cmd = "CIRCLE_PROJECT_USERNAME={0} $(execpath :rosetta) steps --configuration .aspect/workflows/config.yaml --host circleci > $@".format(CIRCLECI_ORG),
tools = [":rosetta"],
)

genrule(
name = "merge_config",
srcs = [
":aspect-workflows-config.yml",
CIRCLECI_USER_CONFIG_FILE,
circleci_merged_config(
name = "config",
circleci_config_files = [
":user-config.yml",
":aspect-workflows-config",
],
outs = [":_config.yml"],
cmd = "echo -e '# GENERATED FILE - DO NOT EDIT!\\n# Update with: bazel run //.circleci:write_merged_config' > $@ && $(execpath :circleci-config-merge) merge $(execpath :aspect-workflows-config.yml) $(execpath {0}) >> $@".format(CIRCLECI_USER_CONFIG_FILE),
tools = [":circleci-config-merge"],
)

write_source_file(
name = "write_merged_config",
in_file = ":_config.yml",
out_file = "config.yml",
)
15 changes: 13 additions & 2 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ http_archive(
url = "https://github.com/aspect-build/rules_lint/releases/download/v0.7.0/rules_lint-v0.7.0.tar.gz",
)

http_archive(
name = "aspect_rules_workflows",
sha256 = "6a0cf9f593c6384035a8b9d74a62f6177d77b08741a8d85a522c6f1adeade438",
strip_prefix = "rules_workflows-0.1.0",
url = "https://github.com/aspect-build/rules_workflows/releases/download/v0.1.0/rules_workflows-v0.1.0.tar.gz",
)

http_archive(
name = "bazel_skylib",
sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
Expand Down Expand Up @@ -253,6 +260,10 @@ fetch_shfmt()

fetch_terraform()

load("//.aspect/workflows:deps.bzl", "fetch_workflows_deps")
load("@aspect_rules_workflows//workflows:dependencies.bzl", "rules_workflows_dependencies")

rules_workflows_dependencies()

load("@aspect_rules_workflows//workflows:repositories.bzl", "fetch_workflows_tools")

fetch_workflows_deps()
fetch_workflows_tools(workflows_version = "5.9.2")

0 comments on commit 3b6024d

Please sign in to comment.