Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
if: always()
working-directory: test
run: |
echo "::set-output name=LOGS_PATH::$(readlink -f bazel-testlogs)"
echo "LOGS_PATH=$(readlink -f bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
Expand Down Expand Up @@ -124,15 +124,14 @@ jobs:
working-directory: test
shell: bash
run: |
LOGS_TAR=$PWD/logs.tar
cd bazel-testlogs
tar -cf $LOGS_TAR *
echo "LOGS_PATH=$(bazel info bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
uses: actions/upload-artifact@v3
with:
name: bazel-testlogs-windows-${{matrix.otp}}
path: test/logs.tar
name: bazel-testlogs-bzlmod-windows-${{matrix.otp}}
path: ${{ steps.resolve-test-logs-path.outputs.LOGS_PATH }}/*
test-bzlmod:
runs-on: ubuntu-20.04
strategy:
Expand All @@ -156,7 +155,7 @@ jobs:
if: always()
working-directory: test
run: |
echo "::set-output name=LOGS_PATH::$(readlink -f bazel-testlogs)"
echo "LOGS_PATH=$(readlink -f bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
Expand Down Expand Up @@ -200,15 +199,14 @@ jobs:
working-directory: test
shell: bash
run: |
LOGS_TAR=$PWD/logs.tar
cd bazel-testlogs
tar -cf $LOGS_TAR *
echo "LOGS_PATH=$(bazel info bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
uses: actions/upload-artifact@v3
with:
name: bazel-testlogs-bzlmod-windows-${{matrix.otp}}
path: test/logs.tar
path: ${{ steps.resolve-test-logs-path.outputs.LOGS_PATH }}/*
test-bzlmod-internal-erlang:
runs-on: ubuntu-20.04
steps:
Expand Down Expand Up @@ -240,7 +238,7 @@ jobs:
if: always()
working-directory: test
run: |
echo "::set-output name=LOGS_PATH::$(readlink -f bazel-testlogs)"
echo "LOGS_PATH=$(readlink -f bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
Expand Down Expand Up @@ -342,7 +340,7 @@ jobs:
if: always()
working-directory: test
run: |
echo "::set-output name=LOGS_PATH::$(readlink -f bazel-testlogs)"
echo "LOGS_PATH=$(readlink -f bazel-testlogs)" | tee $GITHUB_OUTPUT
id: resolve-test-logs-path
- name: CAPTURE TEST LOGS
if: always()
Expand Down
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ erlang_package.hex_package(
use_repo(
erlang_package,
"getopt_src",
"xref_runner_src",
"thoas",
"xref_runner_src",
)

erlang_config_extension = use_extension(
Expand Down
10 changes: 9 additions & 1 deletion erlang_app_info.bzl
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
load("//transitions:beam_transition.bzl", "beam_transition")

ErlangAppInfo = provider(
doc = "Compiled Erlang Application",
fields = {
Expand Down Expand Up @@ -62,11 +64,17 @@ erlang_app_info = rule(
"extra_apps": attr.string_list(),
"hdrs": attr.label_list(allow_files = True),
"app": attr.label(allow_files = [".app"]),
"beam": attr.label_list(allow_files = [".beam", ".appup"]),
"beam": attr.label_list(
allow_files = [".beam", ".appup"],
cfg = beam_transition,
),
"priv": attr.label_list(allow_files = True),
"license_files": attr.label_list(allow_files = True),
"srcs": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangAppInfo]),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
provides = [ErlangAppInfo],
)
1 change: 1 addition & 0 deletions gazelle/erl_attrs_to_json/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ load("@rules_erlang//:erlang_app.bzl", "erlang_app", "test_erlang_app")
load("//:escript.bzl", "escript_archive")

APP_NAME = "erl_attrs_to_json"

APP_VERSION = "1.0.0"

DEPS = ["@thoas//:erlang_app"]
Expand Down
5 changes: 5 additions & 0 deletions private/ct.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ load(
"erlang_dirs",
"maybe_install_erlang",
)
load("//transitions:beam_transition.bzl", "beam_transition")

def sanitize_sname(s):
return s.replace("@", "-").replace(".", "_")
Expand Down Expand Up @@ -336,6 +337,7 @@ ct_test = rule(
"compiled_suites": attr.label_list(
allow_files = [".beam"],
mandatory = True,
cfg = beam_transition,
),
"ct_hooks": attr.string_list(),
"ct_run_extra_args": attr.string_list(),
Expand All @@ -350,6 +352,9 @@ ct_test = rule(
default = "group",
values = ["group", "case"],
),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
test = True,
Expand Down
5 changes: 5 additions & 0 deletions private/dialyze.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ load("//:erlang_app_info.bzl", "ErlangAppInfo")
load("//:util.bzl", "path_join", "windows_path")
load(":util.bzl", "erl_libs_contents")
load(":ct.bzl", "code_paths", "unique_short_dirnames")
load("//transitions:beam_transition.bzl", "beam_transition")

def _impl(ctx):
if ctx.attr.target == None and len(ctx.attr.beam) == 0:
Expand Down Expand Up @@ -114,6 +115,7 @@ dialyze_test = rule(
),
"beam": attr.label_list(
allow_files = [".beam"],
cfg = beam_transition,
),
"target": attr.label(
providers = [ErlangAppInfo],
Expand All @@ -129,6 +131,9 @@ dialyze_test = rule(
],
),
"warnings_as_errors": attr.bool(default = True),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
test = True,
Expand Down
12 changes: 7 additions & 5 deletions private/erlang_bytecode.bzl
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
load("//:erlang_app_info.bzl", "ErlangAppInfo")
load("//:util.bzl", "path_join")
load(":util.bzl", "erl_libs_contents")
load("//transitions:beam_transition.bzl", "beam_transition")
load(
"//tools:erlang_toolchain.bzl",
"erlang_dirs",
Expand Down Expand Up @@ -146,14 +147,11 @@ fi

erlang_bytecode = rule(
implementation = _impl,
cfg = beam_transition,
attrs = {
"compile_first": attr.label(
executable = True,
# I would have thought this should be "exec", since this is run
# in the execution environment. However, it's an ecript needing
# beam, and "target" allows it to match the toolchains for this
# rule.
cfg = "target",
cfg = "exec",
),
"app_name": attr.string(),
"hdrs": attr.label_list(
Expand All @@ -165,6 +163,7 @@ erlang_bytecode = rule(
),
"beam": attr.label_list(
allow_files = [".beam"],
cfg = beam_transition,
),
"deps": attr.label_list(
providers = [ErlangAppInfo],
Expand All @@ -176,6 +175,9 @@ erlang_bytecode = rule(
"dest": attr.string(
default = "ebin",
),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
)
6 changes: 6 additions & 0 deletions private/erlang_bytecode2.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ load("//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps")
load("//:util.bzl", "path_join")
load(":erlang_bytecode.bzl", "unique_dirnames")
load(":util.bzl", "erl_libs_contents")
load("//transitions:beam_transition.bzl", "beam_transition")
load(
"//tools:erlang_toolchain.bzl",
"erlang_dirs",
Expand Down Expand Up @@ -122,6 +123,7 @@ fi

erlang_bytecode = rule(
implementation = _impl,
cfg = beam_transition,
attrs = {
"app_name": attr.string(),
"hdrs": attr.label_list(
Expand All @@ -133,6 +135,7 @@ erlang_bytecode = rule(
),
"beam": attr.label_list(
allow_files = [".beam"],
cfg = beam_transition,
),
"deps": attr.label_list(
providers = [ErlangAppInfo],
Expand All @@ -146,6 +149,9 @@ erlang_bytecode = rule(
"outs": attr.output_list(
mandatory = True,
),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
)
Expand Down
12 changes: 11 additions & 1 deletion private/escript_archive.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ load(
"//:util.bzl",
"path_join",
)
load(
"//transitions:beam_transition.bzl",
"beam_transition",
)
load(
":util.bzl",
"additional_file_dest_relative_path",
Expand Down Expand Up @@ -137,10 +141,16 @@ escript_archive = rule(
),
"srcs": attr.label_list(allow_files = [".erl"]),
"hdrs": attr.label_list(allow_files = [".hrl"]),
"beam": attr.label_list(allow_files = [".beam"]),
"beam": attr.label_list(
allow_files = [".beam"],
cfg = beam_transition,
),
"app": attr.label(providers = [ErlangAppInfo]),
"flat": attr.bool(),
"drop_hrl": attr.bool(),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
executable = True,
Expand Down
10 changes: 9 additions & 1 deletion private/escript_flat.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ load(
"erlang_dirs",
"maybe_install_erlang",
)
load(
"//transitions:beam_transition.bzl",
"beam_transition",
)

def _impl(ctx):
out = ctx.actions.declare_file(ctx.attr.out if ctx.attr.out != "" else ctx.label.name)
Expand All @@ -27,7 +31,7 @@ halt().
body = body,
))

(erlang_home, erlang_release_dir, runfiles) = erlang_dirs(ctx)
(erlang_home, _, runfiles) = erlang_dirs(ctx)

inputs = depset(
direct = ctx.files.src + ctx.files.beam,
Expand Down Expand Up @@ -63,8 +67,12 @@ escript_flat = rule(
),
"beam": attr.label(
allow_single_file = [".beam"],
cfg = beam_transition,
),
"out": attr.string(),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
)
9 changes: 8 additions & 1 deletion private/eunit.bzl
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
load(
"//:erlang_app_info.bzl",
"ErlangAppInfo",
"flat_deps",
)
load(
"//:util.bzl",
"path_join",
"windows_path",
)
load(
"//transitions:beam_transition.bzl",
"beam_transition",
)
load(
":util.bzl",
"erl_libs_contents",
Expand Down Expand Up @@ -222,6 +225,7 @@ eunit_test = rule(
"is_windows": attr.bool(mandatory = True),
"compiled_suites": attr.label_list(
allow_files = [".beam"],
cfg = beam_transition,
),
"eunit_mods": attr.string_list(),
"target": attr.label(providers = [ErlangAppInfo]),
Expand All @@ -234,6 +238,9 @@ eunit_test = rule(
),
"tools": attr.label_list(),
"test_env": attr.string_dict(),
"_allowlist_function_transition": attr.label(
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
),
},
toolchains = ["//tools:toolchain_type"],
test = True,
Expand Down
3 changes: 3 additions & 0 deletions test/.bazelrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
build --enable_bzlmod
build --incompatible_strict_action_env

# https://github.com/bazelbuild/bazel/issues/17081
build --use_top_level_targets_for_symlinks=false

build --flag_alias=erlang_home=@rules_erlang//:erlang_home
build --flag_alias=erlang_version=@rules_erlang//:erlang_version

Expand Down
1 change: 1 addition & 0 deletions test/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ platform(
name = "erlang_internal_platform",
constraint_values = [
"@erlang_config//:erlang_internal",
"@erlang_config//:erlang_26",
],
parents = ["@rbe//config:platform"],
)
Expand Down
2 changes: 1 addition & 1 deletion test/erl_attrs_to_json/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ ct_suite(
name = "erl_attrs_to_json_SUITE",
size = "small",
data = [
"test/basic.hrl",
"test/basic.erl",
"test/basic.hrl",
"test/test.erl",
],
deps = [
Expand Down
4 changes: 2 additions & 2 deletions test/gazelle/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ go_test(
data = [
":gazelle_erlang_binary",
"@rules_erlang//gazelle:dot_app_to_json",
"@rules_erlang//gazelle/erl_attrs_to_json:erl_attrs_to_json",
"@rules_erlang//gazelle:hex_metadata_config_to_json",
"@rules_erlang//gazelle:rebar_config_to_json",
"@rules_erlang//gazelle/erl_attrs_to_json",
] + glob(["testdata/**"]),
tags = ["manual"],
deps = [
Expand Down Expand Up @@ -103,6 +103,6 @@ EOF
""",
executable = True,
tools = [
"@rules_erlang//gazelle/erl_attrs_to_json:erl_attrs_to_json",
"@rules_erlang//gazelle/erl_attrs_to_json",
],
)
7 changes: 7 additions & 0 deletions transitions/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")

bool_flag(
name = "enable",
build_setting_default = True,
visibility = ["//visibility:public"],
)
Loading