Commit Graph

28 Commits

Author SHA1 Message Date
Rin Kuryloski 5debebfaf3 Use rules_elixir to build the cli without mix
Certain elixir-native deps are still build with mix, but this can be
corrected later
2024-06-18 14:50:34 +02:00
Rin Kuryloski 5e1983abee Resolve additional symlinks when copying in rabbitmqctl.bzl 2024-03-20 16:21:10 +01:00
Rin Kuryloski ca7027530d Resolve symlinks when copying in rabbitmqctl.bzl 2024-03-20 16:21:10 +01:00
Rin Kuryloski d81bfb46c0 Another attempt to fix the missing rabbit_framing.hrl error
when running the cli tests

copies rather than symlinks files into the ERL_LIBS dir when building
the cli
2023-11-15 09:51:05 +01:00
Rin Kuryloski 2c5e9a5775 Fix rabbitmq_cli test compilation under elixir 1.15 2023-07-04 17:45:32 +02:00
Rin Kuryloski 8efc71eb9f Fix rabbitmqctl compilation under elixir 1.15.x 2023-07-04 17:45:04 +02:00
Rin Kuryloski 19f4abd55b Build cli deps as .ez archives
This provides an elixir/erlang agnostic way of providing them other
erlang rules
2023-05-12 08:26:42 +02:00
Rin Kuryloski 8de8f59d47 Use gazelle generated bazel files
Bazel build files are now maintained primarily with `bazel run
gazelle`. This will analyze and merge changes into the build files as
necessitated by certain code changes (e.g. the introduction of new
modules).

In some cases there hints to gazelle in the build files, such as `#
gazelle:erlang...` or `# keep` comments. xref checks on plugins that
depend on the cli are a good example.
2023-04-17 18:13:18 +02:00
Rin Kuryloski 12dea642ef Properly escape certain shell variables in bazel
In places where such files recently changed
2023-04-13 09:45:28 +02:00
Rin Kuryloski f09b31e8c5
Fetch all cli deps with bazel (#7875)
* Fetch all prod cli deps with bazel

This avoids issues with hex and OTP 26, and is needed for offline
bazel builds anyway

* Fetch test cli deps with bazel

* mix format
2023-04-12 16:27:32 +04:00
Rin Kuryloski 87fc43df11 Try to make `bazel clean` unnecessary when switching branches
Sometimes switching branches seems to cause an issue with cli
compilation in bazel. This is an attempt to fix that.
2023-03-21 15:23:02 +01:00
Rin Kuryloski 8e7e891589 Avoid fetching test deps when building rabbitmqctl with bazel 2023-03-15 11:54:37 +01:00
Rin Kuryloski eba1d531c9 Fetch cli prod deps via bazel or erlang.mk instead of mix
In preparation for offline bazel builds
2023-03-14 23:11:36 +01:00
Rin Kuryloski bdb2046185
Add rabbitmq_cli dialyze to bazel (#7066)
* Add rabbitmq_cli dialyze to bazel

and fix a number of warnings

Because we stop mix from recompiling rabbit_common in bazel, many
unknown functions are reported, so this dialyzer analysis is somewhat
incomplete.

* Use erlang dialyzer for rabbitmq_cli rather than mix dialyzer

Since this resolves all of the rabbit functions, there are far fewer
unknown functions.

Requires yet to be released rules_erlang 3.9.2

* Temporarily use pre-release rules_erlang

So that checks can run on this PR without a release

* Fix additional dialyzer warnings in rabbitmq_cli

* rabbitmq_cli: mix format

* Additional fixes for ignored return values

* Revert "Temporarily use pre-release rules_erlang"

This reverts commit c16b5b6815.

* Use rules_erlang 3.9.2
2023-01-31 15:05:52 +01:00
Rin Kuryloski 3b2513eb93 Quote vars in shell in deps/rabbitmq_cli/rabbitmqctl.bzl 2023-01-20 15:50:17 +01:00
Rin Kuryloski 057f776c8a Fixup docstring 2023-01-19 17:29:29 +01:00
Rin Kuryloski b84e746ee9 Rework plt/dialyze for rabbitmqctl and plugins that depend on it
This allows us to stop ignorning undefined callback warnings

When mix compiles rabbitmqctl, it produces a 'consolidated' directory
alongside the 'ebin' dir. Some of the modules in consolidated are
intended to be used instead of those provided by elixir. We now handle
the conflicts properly in the bazel build.
2023-01-19 17:29:23 +01:00
Rin Kuryloski a71ff1341e Add 'mix format --check-formatted' to the rabbitmqctl_tests in bazel
to match the check on the Makefile side that was recently introduced
2022-10-04 14:59:45 +02:00
Philip Kuryloski 09fa85e570 Remove extra tar options not supported on macos
They would have improved the reproducibility of the :source_archive
rule, but are not essential. Fixes the macos breakage introduced by
5027.
2022-06-14 17:53:49 +02:00
Philip Kuryloski 34db1a3c38 Add a rule for building a source archive
that includes the external dependencies
2022-06-14 10:44:09 +02:00
Philip Kuryloski f52efbb909 Fixup rabbitmqctl build for missing formatters & otp 25 2022-06-13 12:08:57 +02:00
Philip Kuryloski 0b676e925f Again bump rules_erlang 2022-06-08 14:04:59 +02:00
Philip Kuryloski 327f075d57 Make rabbitmq-server work with rules_erlang 3
Also rework elixir dependency handling, so we no longer rely on mix to
fetch the rabbitmq_cli deps

Also:

- Specify ra version with a commit rather than a branch
- Fixup compilation options for erlang 23
- Add missing ra reference in MODULE.bazel
- Add missing flag in oci.yaml
- Reduce bazel rbe jobs to try to save memory
- Use bazel built erlang for erlang git master tests
- Use the same cache for all the workflows but windows
- Avoid using `mix local.hex --force` in elixir rules
  - Fetching seems blocked in CI, and this should reduce hex api usage in
    all builds, which is always nice
- Remove xref and dialyze tags since rules_erlang 3 includes them in
  the defaults
2022-06-08 14:04:53 +02:00
Philip Kuryloski 936a9e785a Workaround mix error on windows
Also avoid long path issues in windows/bazel

https://docs.bazel.build/versions/main/windows.html#avoid-long-path-issues
2022-01-25 16:18:47 +00:00
Philip Kuryloski efcd881658 Use rules_erlang v2
bazel-erlang has been renamed rules_erlang. v2 is a substantial
refactor that brings Windows support. While this alone isn't enough to
run all rabbitmq-server suites on windows, one can at least now start
the broker (bazel run broker) and run the tests that do not start a
background broker process
2022-01-18 13:43:46 +01:00
Philip Kuryloski 8c0eece3cd Adjustments for the latest bazel-erlang 2021-11-02 16:24:26 +01:00
Philip Kuryloski 6a161475fc Use the deterministic compiler flag for elixir/rabbitmq_cli 2021-09-16 16:45:11 +02:00
Philip Kuryloski 388654c542
Add a partial Bazel build (#2938)
Adds WORKSPACE.bazel, BUILD.bazel & *.bzl files for partial build & test with Bazel. Introduces a build-time dependency on https://github.com/rabbitmq/bazel-erlang
2021-03-29 11:01:43 +02:00