Skip to content

Commit b4c7b33

Browse files
committed
Improve Bazel integration
1 parent 52d6e73 commit b4c7b33

32 files changed

Lines changed: 1085 additions & 1701 deletions

.bazelignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.build
2+
.git

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.3.0
1+
8.0.0

.github/workflows/test.yml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,29 @@ env:
1313
cache_version: 1
1414
jobs:
1515
lint:
16-
runs-on: macos-14
16+
runs-on: macos-15
1717
name: Lint
1818
steps:
1919
- uses: actions/checkout@master
2020
- uses: jdx/mise-action@v2
2121
- run: mise run lint-ci
22+
bazel:
23+
runs-on: macos-15
24+
name: Bazel
25+
steps:
26+
- uses: actions/checkout@master
27+
- name: Scan
28+
run: bazel run //:periphery -- scan --bazel --quiet --strict --baseline bazel/internal/bazel_baseline.json
2229
macOS:
2330
strategy:
2431
fail-fast: false
2532
matrix:
26-
xcode: ["16.0", "15.4", "15.2"]
33+
xcode: ["16.1", "16.0", "15.4", "15.2"]
2734
include:
35+
- xcode: "16.1"
36+
macos: macos-15
2837
- xcode: "16.0"
29-
macos: macos-14
38+
macos: macos-15
3039
- xcode: "15.4"
3140
macos: macos-14
3241
- xcode: "15.2"
@@ -69,33 +78,30 @@ jobs:
6978
include:
7079
- swift: "6.0"
7180
container: "swift:6.0"
72-
cache-version: 1
7381
- swift: "5.10"
7482
container: "swift:5.10"
75-
cache-version: 1
7683
- swift: "5.9"
7784
container: "swift:5.9"
78-
cache-version: 1
7985
runs-on: ubuntu-20.04
8086
container: ${{ matrix.container }}
8187
name: Linux
8288
steps:
89+
- uses: actions/checkout@master
8390
- name: Get Swift Version
8491
id: get-swift-version
8592
run: |
8693
echo "::set-output name=version::$(swift -version | head -n 1 | sed s/,// )"
8794
shell: bash
88-
- uses: actions/checkout@master
8995
- name: Cache resolved dependencies
9096
id: cache-resolved-dependencies
9197
uses: actions/cache@v2
9298
with:
9399
path: |
94100
.build
95101
Package.resolved
96-
key: ${{ matrix.cache-version }}-${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-${{ hashFiles('Package.swift', 'Package.resolved') }}
102+
key: ${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-${{ hashFiles('Package.swift', 'Package.resolved') }}
97103
restore-keys: |
98-
${{ matrix.cache-version }}-${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-
104+
${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-
99105
- name: Resolve dependencies
100106
if: steps.cache-resolved-dependencies.outputs.cache-hit != 'true'
101107
run: ${{ env.swift_package_resolve }}

.mise/tasks/benchmark

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
# mise description="Run scan benchmark"
3+
set -eo pipefail
4+
5+
#USAGE flag "-b --bazel" help="Use binary built by Bazel"
6+
7+
cmd=""
8+
9+
if [ "$usage_bazel" = "true" ]; then
10+
echo "INFO: Using Bazel"
11+
bazel build //:periphery
12+
cmd='bazel-bin/Sources/Frontend scan --config /var/tmp/periphery_bazel/periphery.yml --generic-project-config bazel-bin/external/+generated+periphery_generated/rule/project_config.json'
13+
else
14+
make build_arm64
15+
./.build/release/periphery scan --quiet
16+
cmd='./.build/release/periphery scan --quiet --skip-build'
17+
fi
18+
19+
echo $cmd
20+
hyperfine --warmup 3 "${cmd}"

.mise/tasks/lint

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ set -euo pipefail
44

55
cd $MISE_PROJECT_ROOT
66

7+
bazel run //bazel/internal:buildifier.fix
78
swiftformat .
89
swiftlint lint --quiet

.mise/tasks/lint-ci

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ set -euo pipefail
44

55
cd $MISE_PROJECT_ROOT
66

7+
bazel run //bazel/internal:buildifier.check
78
swiftformat --quiet --strict .
89
swiftlint lint --quiet --strict

BUILD.bazel

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package_group(
22
name = "generated",
33
includes = [
4-
"@periphery_generated//:package_group"
4+
"@periphery_generated//:package_group",
55
],
66
)
77

@@ -10,4 +10,10 @@ package_group(
1010
packages = ["//..."],
1111
)
1212

13-
alias(actual = "@periphery_generated//rule:scan", name = "scan")
13+
sh_binary(
14+
name = "periphery",
15+
srcs = ["//bazel/internal:run.sh"],
16+
data = [
17+
"//Sources:Frontend_opt",
18+
],
19+
)

MODULE.bazel

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,32 @@ module(
44
compatibility_level = 1,
55
)
66

7-
bazel_dep(name = "rules_swift", version = "2.1.1")
8-
bazel_dep(name = "rules_apple", version = "3.8.0")
7+
# Bazel dependencies
8+
bazel_dep(name = "rules_swift", version = "2.3.0")
9+
bazel_dep(name = "rules_apple", version = "3.16.0")
910
bazel_dep(name = "bazel_skylib", version = "1.7.1")
11+
bazel_dep(name = "apple_support", version = "1.17.1")
12+
bazel_dep(name = "platforms", version = "0.0.10")
1013

14+
# Bazel dev dependencies
15+
bazel_dep(name = "buildifier_prebuilt", version = "7.3.1", dev_dependency = True)
16+
17+
# Swift dependencies
18+
bazel_dep(name = "swift-syntax", version = "600.0.1")
19+
bazel_dep(name = "yams", version = "5.1.3")
20+
bazel_dep(name = "aexml", version = "4.7.0")
21+
bazel_dep(name = "swift_argument_parser", version = "1.5.0")
22+
bazel_dep(name = "swift-indexstore", version = "0.3.0")
23+
bazel_dep(name = "swift-filename-matcher", version = "0.1.2")
24+
25+
# Extensions
1126
generated = use_extension("//bazel:extensions.bzl", "generated")
1227
use_repo(generated, "periphery_generated")
28+
29+
non_module_deps = use_extension("//bazel/internal:extensions.bzl", "non_module_deps")
30+
use_repo(
31+
non_module_deps,
32+
"com_github_apple_swift-system",
33+
"com_github_kylef_pathkit",
34+
"com_github_tuist_xcodeproj",
35+
)

0 commit comments

Comments
 (0)