| load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_file") |
| |
| CIRCLECI_ORG = "aspect-build" |
| |
| CIRCLECI_USER_CONFIG_FILE = "//.circleci:user-config.yml" |
| |
| not_windows = select({ |
| # There isn't a published rosetta binary for windows as of Feb 2024 |
| "@platforms//os:windows": ["@platforms//:incompatible"], |
| "//conditions:default": [], |
| }) |
| |
| 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", |
| }), |
| target_compatible_with = not_windows, |
| ) |
| |
| 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", |
| }), |
| target_compatible_with = not_windows, |
| ) |
| |
| 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), |
| target_compatible_with = not_windows, |
| tools = [":rosetta"], |
| ) |
| |
| genrule( |
| name = "merge_config", |
| srcs = [ |
| ":aspect-workflows-config.yml", |
| CIRCLECI_USER_CONFIG_FILE, |
| ], |
| 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), |
| target_compatible_with = not_windows, |
| tools = [":circleci-config-merge"], |
| ) |
| |
| write_source_file( |
| name = "write_merged_config", |
| in_file = ":_config.yml", |
| out_file = "config.yml", |
| target_compatible_with = not_windows, |
| ) |