mirror of
https://github.com/github/codeql.git
synced 2025-12-16 08:43:11 +01:00
Bazel: introduce buildifier formatting
This introduces tooling and enforcement for formatting bazel files. The tooling is provided as a bazel run target from [keith/buildifier-prebuilt](https://github.com/keith/buildifier-prebuilt). This is used in a [`pre-commit`](https://pre-commit.com/) hook for those having that installed. In turn this is used in a CI check. Relying on a `pre-commit` action gives us easy checking that buildifying did not change anything in the files and printing the diff, without having to hand-roll the check ourselves. This enforcement will make usage of gazelle easier, as gazelle itself might reformat files, even outside of `go`. Having them properly formatted will allow gazelle to leave them unchanged, without needing to configure awkward exclude directives.
This commit is contained in:
26
.github/workflows/buildifier.yml
vendored
Normal file
26
.github/workflows/buildifier.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
name: Check bazel formatting
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "**.bazel"
|
||||||
|
- "**.bzl"
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- "rc/*"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
|
||||||
|
with:
|
||||||
|
extra_args: buildifier --all-files --show-diff-on-failure
|
||||||
|
- if: failure()
|
||||||
|
run: |
|
||||||
|
echo "In order to format all files, please run:"
|
||||||
|
echo " bazel run //:buildifier"
|
||||||
@@ -20,13 +20,15 @@ repos:
|
|||||||
- id: autopep8
|
- id: autopep8
|
||||||
files: ^misc/codegen/.*\.py
|
files: ^misc/codegen/.*\.py
|
||||||
|
|
||||||
- repo: https://github.com/warchant/pre-commit-buildifier
|
|
||||||
rev: 0.0.2
|
|
||||||
hooks:
|
|
||||||
- id: buildifier
|
|
||||||
|
|
||||||
- repo: local
|
- repo: local
|
||||||
hooks:
|
hooks:
|
||||||
|
- id: buildifier
|
||||||
|
name: Format bazel files
|
||||||
|
files: \.(bazel|bzl)
|
||||||
|
language: system
|
||||||
|
entry: bazel run //:buildifier
|
||||||
|
pass_filenames: false
|
||||||
|
|
||||||
- id: codeql-format
|
- id: codeql-format
|
||||||
name: Fix QL file formatting
|
name: Fix QL file formatting
|
||||||
files: \.qll?$
|
files: \.qll?$
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
load("@buildifier_prebuilt//:rules.bzl", "buildifier")
|
||||||
|
|
||||||
|
buildifier(
|
||||||
|
name = "buildifier",
|
||||||
|
exclude_patterns = [
|
||||||
|
"./.git/*",
|
||||||
|
],
|
||||||
|
lint_mode = "fix",
|
||||||
|
)
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ bazel_dep(name = "abseil-cpp", version = "20240116.0", repo_name = "absl")
|
|||||||
bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
|
bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
|
||||||
bazel_dep(name = "fmt", version = "10.0.0")
|
bazel_dep(name = "fmt", version = "10.0.0")
|
||||||
|
|
||||||
|
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
|
||||||
|
|
||||||
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
|
||||||
pip.parse(
|
pip.parse(
|
||||||
hub_name = "codegen_deps",
|
hub_name = "codegen_deps",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
load("@semmle_code//:dist.bzl", "dist")
|
|
||||||
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
|
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
|
||||||
|
load("@semmle_code//:dist.bzl", "dist")
|
||||||
load("@semmle_code//buildutils-internal:zipmerge.bzl", "zipmerge")
|
load("@semmle_code//buildutils-internal:zipmerge.bzl", "zipmerge")
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
load("@semmle_code//:common.bzl", "codeql_fat_jar", "codeql_java_project")
|
|
||||||
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
|
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
|
||||||
|
load("@semmle_code//:common.bzl", "codeql_fat_jar", "codeql_java_project")
|
||||||
|
|
||||||
java_library(
|
java_library(
|
||||||
name = "deps",
|
name = "deps",
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
load("@codegen_deps//:requirements.bzl", "requirement")
|
|
||||||
|
|
||||||
py_binary(
|
py_binary(
|
||||||
name = "codegen",
|
name = "codegen",
|
||||||
srcs = ["codegen.py"],
|
srcs = ["codegen.py"],
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
load("@codegen_deps//:requirements.bzl", "requirement")
|
|
||||||
|
|
||||||
py_library(
|
py_library(
|
||||||
name = "generators",
|
name = "generators",
|
||||||
srcs = glob(["*.py"]),
|
srcs = glob(["*.py"]),
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
load("@py_deps//:defs.bzl", "aliases", "all_crate_deps")
|
||||||
load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
|
load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
|
||||||
load("@rules_rust//rust:defs.bzl", "rust_library")
|
load("@rules_rust//rust:defs.bzl", "rust_library")
|
||||||
load("@py_deps//:defs.bzl", "aliases", "all_crate_deps")
|
|
||||||
|
|
||||||
package(default_visibility = ["//visibility:public"])
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
load("//swift:rules.bzl", "swift_cc_binary")
|
|
||||||
load("//misc/bazel:pkg_runfiles.bzl", "pkg_runfiles")
|
load("//misc/bazel:pkg_runfiles.bzl", "pkg_runfiles")
|
||||||
|
load("//swift:rules.bzl", "swift_cc_binary")
|
||||||
|
|
||||||
swift_cc_binary(
|
swift_cc_binary(
|
||||||
name = "extractor.real",
|
name = "extractor.real",
|
||||||
@@ -7,6 +7,10 @@ swift_cc_binary(
|
|||||||
"*.h",
|
"*.h",
|
||||||
"*.cpp",
|
"*.cpp",
|
||||||
]),
|
]),
|
||||||
|
linkopts = select({
|
||||||
|
"@platforms//os:macos": ["-headerpad_max_install_names"],
|
||||||
|
"//conditions:default": [],
|
||||||
|
}),
|
||||||
visibility = ["//swift:__pkg__"],
|
visibility = ["//swift:__pkg__"],
|
||||||
deps = [
|
deps = [
|
||||||
"//swift/extractor/config",
|
"//swift/extractor/config",
|
||||||
@@ -17,10 +21,6 @@ swift_cc_binary(
|
|||||||
"//swift/third_party/swift-llvm-support",
|
"//swift/third_party/swift-llvm-support",
|
||||||
"@absl//absl/strings",
|
"@absl//absl/strings",
|
||||||
],
|
],
|
||||||
linkopts = select({
|
|
||||||
"@platforms//os:macos": ["-headerpad_max_install_names"],
|
|
||||||
"//conditions:default": [],
|
|
||||||
}),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
sh_binary(
|
sh_binary(
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ cc_library(
|
|||||||
hdrs = glob(["*.h"]),
|
hdrs = glob(["*.h"]),
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//shared/cpp:extractor_shared",
|
||||||
"@absl//absl/strings",
|
"@absl//absl/strings",
|
||||||
"@binlog",
|
"@binlog",
|
||||||
"@fmt",
|
"@fmt",
|
||||||
"@json",
|
"@json",
|
||||||
"//shared/cpp:extractor_shared",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user