diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index c8928ac..a8db569 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -26,7 +26,7 @@ jobs: run: mix compile --warnings-as-errors test: - name: Test (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}}) + name: Test (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}} | RabbitMQ ${{matrix.rabbitmq}}) runs-on: ubuntu-latest strategy: fail-fast: false @@ -34,20 +34,21 @@ jobs: include: # rabbit_common currently does not compile against OTP v27. # This needs to be fixed upstream to achieve compatibility. - #- otp: 27.x - # elixir: 1.17.x + - otp: 27.x + elixir: 1.17.x + rabbitmq: 4 - otp: 26.x elixir: 1.17.x + rabbitmq: 3 - otp: 26.x elixir: 1.16.x + rabbitmq: 3 - otp: 26.x elixir: 1.15.x + rabbitmq: 3 - otp: 26.x elixir: 1.14.5 - - otp: 25.x - elixir: 1.13.4 - - otp: 24.x - elixir: 1.12.3 + rabbitmq: 3 env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} MIX_ENV: test @@ -65,7 +66,7 @@ jobs: run: mix deps.get - name: Start docker - run: docker compose up --detach + run: docker compose -f docker-compose.rabbitmq${{matrix.rabbitmq}}.yml up --detach - name: Run tests run: mix test --trace diff --git a/docker-compose.rabbitmq3.yml b/docker-compose.rabbitmq3.yml new file mode 100644 index 0000000..0234d24 --- /dev/null +++ b/docker-compose.rabbitmq3.yml @@ -0,0 +1,7 @@ +version: '3' + +services: + rabbitmq: + image: "rabbitmq:3-alpine" + ports: + - "5672:5672" diff --git a/docker-compose.rabbitmq4.yml b/docker-compose.rabbitmq4.yml new file mode 100644 index 0000000..5206d84 --- /dev/null +++ b/docker-compose.rabbitmq4.yml @@ -0,0 +1,7 @@ +version: '3' + +services: + rabbitmq: + image: "rabbitmq:4-alpine" + ports: + - "5672:5672" diff --git a/mix.exs b/mix.exs index 51fd36d..886ab7a 100644 --- a/mix.exs +++ b/mix.exs @@ -2,13 +2,13 @@ defmodule AMQP.Mixfile do use Mix.Project @source_url "https://github.com/pma/amqp" - @version "3.3.2" + @version "4.0.0-rc.1" def project do [ app: :amqp, version: @version, - elixir: "~> 1.10.3 or ~> 1.11", + elixir: "~> 1.14", package: package(), deps: deps(), dialyzer: dialyzer(), @@ -33,7 +33,7 @@ defmodule AMQP.Mixfile do defp deps do [ - {:amqp_client, "~> 3.9"}, + {:amqp_client, "~> 4.0"}, # Docs dependencies. {:ex_doc, ">= 0.0.0", only: :docs}, diff --git a/mix.lock b/mix.lock index 2ea216b..199ef69 100644 --- a/mix.lock +++ b/mix.lock @@ -1,5 +1,5 @@ %{ - "amqp_client": {:hex, :amqp_client, "3.12.14", "2b677bc3f2e2234ba7517042b25d72071a79735042e91f9116bd3c176854b622", [:make, :rebar3], [{:credentials_obfuscation, "3.4.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:rabbit_common, "3.12.14", [hex: :rabbit_common, repo: "hexpm", optional: false]}], "hexpm", "5f70b6c3b1a739790080da4fddc94a867e99f033c4b1edc20d6ff8b8fb4bd160"}, + "amqp_client": {:hex, :amqp_client, "4.0.3", "c7dcc8031c780cd39ec586ba827a8eb26e006e9761af8d3f58fded11f645ebd4", [:make, :rebar3], [{:credentials_obfuscation, "3.4.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:rabbit_common, "4.0.3", [hex: :rabbit_common, repo: "hexpm", optional: false]}], "hexpm", "ae945f7280617e9a4b17a6d49e3a2f496d716e8088ec29d8e94ecc79e5da7458"}, "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, "credentials_obfuscation": {:hex, :credentials_obfuscation, "3.4.0", "34e18b126b3aefd6e8143776fbe1ceceea6792307c99ac5ee8687911f048cfd7", [:rebar3], [], "hexpm", "738ace0ed5545d2710d3f7383906fc6f6b582d019036e5269c4dbd85dbced566"}, "dialyxir": {:hex, :dialyxir, "0.5.1", "b331b091720fd93e878137add264bac4f644e1ddae07a70bf7062c7862c4b952", [:mix], [], "hexpm", "6c32a70ed5d452c6650916555b1f96c79af5fc4bf286997f8b15f213de786f73"}, @@ -19,9 +19,10 @@ "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm", "fec8660eb7733ee4117b85f55799fd3833eb769a6df71ccf8903e8dc5447cfce"}, - "rabbit_common": {:hex, :rabbit_common, "3.12.14", "466123ee7346a3cdac078c0c302bcd36da4523e8acd678c1b992f7b4df1f7914", [:make, :rebar3], [{:credentials_obfuscation, "3.4.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:recon, "2.5.3", [hex: :recon, repo: "hexpm", optional: false]}, {:thoas, "1.0.0", [hex: :thoas, repo: "hexpm", optional: false]}], "hexpm", "70c31a51f7401cc0204ddef2745d98680c2e0df67e3b0c9e198916881fde3293"}, - "recon": {:hex, :recon, "2.5.3", "739107b9050ea683c30e96de050bc59248fd27ec147696f79a8797ff9fa17153", [:mix, :rebar3], [], "hexpm", "6c6683f46fd4a1dfd98404b9f78dcabc7fcd8826613a89dcb984727a8c3099d7"}, + "rabbit_common": {:hex, :rabbit_common, "4.0.3", "e927b882733d122f6802662220bdb1a83774852dbe67d21d4e33aaf54f3998dd", [:make, :rebar3], [{:credentials_obfuscation, "3.4.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:ranch, "2.1.0", [hex: :ranch, repo: "hexpm", optional: false]}, {:recon, "2.5.6", [hex: :recon, repo: "hexpm", optional: false]}, {:thoas, "1.2.1", [hex: :thoas, repo: "hexpm", optional: false]}], "hexpm", "ead31ba292c2cc5fda48a486417d7cfe8966f661994d7ed6c3e5f8840828e8ec"}, + "ranch": {:hex, :ranch, "2.1.0", "2261f9ed9574dcfcc444106b9f6da155e6e540b2f82ba3d42b339b93673b72a3", [:make, :rebar3], [], "hexpm", "244ee3fa2a6175270d8e1fc59024fd9dbc76294a321057de8f803b1479e76916"}, + "recon": {:hex, :recon, "2.5.6", "9052588e83bfedfd9b72e1034532aee2a5369d9d9343b61aeb7fbce761010741", [:mix, :rebar3], [], "hexpm", "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"}, - "thoas": {:hex, :thoas, "1.0.0", "567c03902920827a18a89f05b79a37b5bf93553154b883e0131801600cf02ce0", [:rebar3], [], "hexpm", "fc763185b932ecb32a554fb735ee03c3b6b1b31366077a2427d2a97f3bd26735"}, + "thoas": {:hex, :thoas, "1.2.1", "19a25f31177a17e74004d4840f66d791d4298c5738790fa2cc73731eb911f195", [:rebar3], [], "hexpm", "e38697edffd6e91bd12cea41b155115282630075c2a727e7a6b2947f5408b86a"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, }