| load("@buildifier_prebuilt//:rules.bzl", "buildifier") | |
| load("@rules_license//rules:license.bzl", "license") | |
| load("@rules_multirun//:defs.bzl", "multirun") | |
| load("//kotlin:lint.bzl", "ktlint_config") | |
| # Copyright 2018 The Bazel Authors. All rights reserved. | |
| # | |
| # 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("//src/main/starlark/release:packager.bzl", "release_archive") | |
| package(default_applicable_licenses = [":license"]) | |
| license( | |
| name = "license", | |
| package_name = "rules_kotlin", | |
| license_kinds = ["@rules_license//licenses/spdx:Apache-2.0"], | |
| license_text = "LICENSE", | |
| visibility = ["//visibility:public"], | |
| ) | |
| filegroup( | |
| name = "editorconfig", | |
| srcs = [".editorconfig"], | |
| ) | |
| ktlint_config( | |
| name = "ktlint_editorconfig", | |
| android_rules_enabled = False, | |
| editorconfig = "//:editorconfig", | |
| experimental_rules_enabled = False, | |
| visibility = ["//visibility:public"], | |
| ) | |
| # The entire test suite excluding local tests. | |
| test_suite( | |
| name = "all_tests", | |
| tests = [ | |
| "//src/test/kotlin/io/bazel/kotlin:assertion_tests", | |
| "//src/test/kotlin/io/bazel/kotlin/builder:builder_tests", | |
| "//src/test/kotlin/io/bazel/worker:worker_tests", | |
| "//src/test/starlark:convert_tests", | |
| "//src/test/starlark:resource_strip_prefix_tests", | |
| ], | |
| ) | |
| # Local tests. Tests that shouldn't be run on the CI server. | |
| test_suite( | |
| name = "all_local_tests", | |
| tests = [ | |
| ":all_tests", | |
| "//src/test/kotlin/io/bazel/kotlin:local_assertion_tests", | |
| "//src/test/kotlin/io/bazel/worker:local_worker_tests", | |
| "//src/test/starlark:convert_tests", | |
| "//src/test/starlark:resource_strip_prefix_tests", | |
| ], | |
| ) | |
| # Release target. | |
| release_archive( | |
| name = "rules_kotlin_release", | |
| srcs = [ | |
| "LICENSE", | |
| ], | |
| src_map = { | |
| "BUILD.release.bazel": "BUILD.bazel", | |
| "MODULE.release.bazel": "MODULE.bazel", | |
| }, | |
| deps = [ | |
| "//kotlin:pkg", | |
| "//src/main/kotlin:pkg", | |
| "//src/main/starlark:pkg", | |
| "//third_party:pkg", | |
| ], | |
| ) | |
| # This target collects all of the parent workspace files needed by the child workspaces. | |
| filegroup( | |
| name = "release_repositories", | |
| # Include every package that is required by the child workspaces. | |
| srcs = [ | |
| ":rules_kotlin_release", | |
| ], | |
| visibility = ["//:__subpackages__"], | |
| ) | |
| multirun( | |
| name = "ktlint_fix_all", | |
| commands = [ | |
| "//src/main/kotlin/io/bazel/kotlin/builder/cmd:build_lib_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/cmd:ksp2_lib_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/cmd:merge_jdeps_lib_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/tasks:tasks_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/toolchain:toolchain_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/utils:utils_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/builder/utils/jars:jars_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/compiler:compiler_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/ksp2:ksp2_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/kotlin/plugin/jdeps:jdeps-gen-lib_ktlint_fix", | |
| "//src/main/kotlin/io/bazel/worker:worker_ktlint_fix", | |
| ], | |
| jobs = 0, | |
| ) | |
| # TODO[https://github.com/bazelbuild/rules_kotlin/issues/1395]: Must be run with `--config=deprecated` | |
| buildifier( | |
| name = "buildifier.check", | |
| exclude_patterns = [ | |
| "./.git/*", | |
| "./.ijwb/*", | |
| ], | |
| lint_mode = "warn", | |
| lint_warnings = [ | |
| "+unsorted-dict-items", | |
| ], | |
| ) | |
| buildifier( | |
| name = "buildifier.fix", | |
| exclude_patterns = [ | |
| "./.git/*", | |
| ], | |
| lint_mode = "fix", | |
| lint_warnings = [ | |
| "+unsorted-dict-items", | |
| ], | |
| ) |