Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
28b72ea
make: Cleanup RABBITMQ_COMPONENTS
lhoguin Jul 4, 2024
38f19f2
make: Remove rabbitmq-tests.mk
lhoguin Jul 5, 2024
4af0343
make: Remove rabbitmq-deps.mk related targets
lhoguin Jul 5, 2024
69cbbf7
make: Remove sync-gitignore-from-main target
lhoguin Jul 5, 2024
14b54bf
make: Remove show-branch target
lhoguin Jul 5, 2024
5319747
make: Remove commits-since-release
lhoguin Jul 22, 2024
0c1f12b
make: Remove show-upstream-git-fetch-url and co
lhoguin Jul 22, 2024
1554554
make: Remove sync-gitremote sync-gituser targets
lhoguin Jul 22, 2024
5bf391d
make: Remove ct-logs-archive target
lhoguin Jul 22, 2024
ab8d086
make: Remove update-contributor-code-of-conduct target
lhoguin Jul 22, 2024
79693f8
make: Refactor PROJECT_VERSION computation
lhoguin Jul 23, 2024
7418feb
make: Remove emptied rabbitmq-tools.mk
lhoguin Jul 24, 2024
a935e3b
make: Additional cleanup of RabbitMQ components
lhoguin Jul 24, 2024
a1e7b85
make: Additional cleanups
lhoguin Jul 25, 2024
d2b091a
make: Move rabbitmq-early-test.mk to rabbitmq-early-plugin.mk
lhoguin Jul 25, 2024
93b4d31
make: Restrict Erlang.mk plugin inclusion
lhoguin Jul 25, 2024
cd83576
rabbit tests: Redirect logs to ct always
lhoguin Aug 23, 2024
c49585e
make: Initial work on using ct_master to run tests
lhoguin Aug 2, 2024
a937286
rabbit tests: Don't fail if rabbit already loaded
lhoguin Sep 2, 2024
576137b
Revert unnecessary Erlang.mk change
lhoguin Sep 2, 2024
3f34f60
make: Fix regressions following make plugins cleanup
lhoguin Sep 10, 2024
cb3913c
Merge feature_flags_with_unpriveleged_user_SUITE back in ff_SUITE
lhoguin Sep 5, 2024
74a2eeb
rabbit tests: Delete some temporary files to reduce log sizes
lhoguin Sep 3, 2024
32b0035
make: Move dep_osiris in rabbitmq-components.mk
lhoguin Sep 10, 2024
9df4683
Use Make in CI
lhoguin Sep 2, 2024
02b857c
mqtt tests: Move web_mqtt tests out of rabbitmq_mqtt
lhoguin Sep 11, 2024
c740935
mqtt tests: Move v5 web_mqtt tests out of rabbitmq_mqtt
lhoguin Sep 11, 2024
ead545e
Do not open WebMQTT connection in MQTT plugin
ansd Sep 11, 2024
e9ebb7e
make: Run rabbitmq_mqtt tests via parallel-ct
lhoguin Sep 11, 2024
6f3e0d3
make CI: Simplify test-rabbitmq-mqtt
lhoguin Sep 12, 2024
f220011
make CI: Simplify workflows
lhoguin Sep 12, 2024
4699735
make CI: Add xref job
lhoguin Sep 12, 2024
e726f65
make CI: Run Dialyzer
lhoguin Sep 12, 2024
dbc61e9
make CI: Run rabbitmq_aws eunit tests
lhoguin Sep 13, 2024
0d0bb05
make CI: Run most rabbitmq_peer_discovery_aws tests
lhoguin Sep 13, 2024
909059e
make: Include rabbitmq_cli ebin in code path only if in deps
lhoguin Sep 16, 2024
bb1c0bd
make: Fix build errors for apps that have rabbit in TEST_DEPS
lhoguin Sep 16, 2024
d239387
amqp10_common: Don't dialyze tests or from source by default
lhoguin Sep 16, 2024
4d99e40
make: Correct rabbitmq_prelaunch/rabbitmq_stream_common deps
lhoguin Sep 16, 2024
ddee163
Fix OTP-27 Dialyzer errors in rabbit
lhoguin Sep 16, 2024
0d9f16f
Fix OTP-27 Dialyzer errors in rabbit_common
lhoguin Sep 16, 2024
4f3ac1d
rabbit_common: Remove 'cover' related code from 'rabbit_misc'
lhoguin Sep 16, 2024
3419487
Fix OTP-27 Dialyzer errors in trust_store_http
lhoguin Sep 16, 2024
96d7eb8
Fix OTP-27 Dialyzer errors in rabbitmq_trust_store
lhoguin Sep 16, 2024
668a793
ldap auth backend: Drop support for pre-OTP-25 search results
lhoguin Sep 16, 2024
8e7305c
Fix OTP-27 Dialyzer errors in rabbitmq_ct_helpers
lhoguin Sep 17, 2024
547735e
Fix some OTP-27 Dialyzer errors in rabbitmq_peer_discovery_etcd
lhoguin Sep 17, 2024
1631fbd
make CI: Don't warn about missing CT log files
lhoguin Sep 17, 2024
69991dc
make CI: Disable Elixir problem matchers in tests
lhoguin Sep 17, 2024
1b23b5b
cli: Start a background node to run the tests
lhoguin Sep 19, 2024
74fe483
cli: Add 4.1.0 to mock plugin's versions
lhoguin Sep 19, 2024
0307a01
make CI: Run rabbitmq_cli tests
lhoguin Sep 19, 2024
92f1f8c
make CI: Always fetch tags
lhoguin Sep 19, 2024
122a7cd
make CI: Set a correct broker version for CLI tests
lhoguin Sep 20, 2024
6fb1196
CLI: Make a test more reliable
lhoguin Sep 23, 2024
4feaef1
make: Set CT_LOGS_DIR to top-level logs/ directory
lhoguin Sep 24, 2024
e173d44
make CI: Use strings instead of numbers for OTP/Ex versions
lhoguin Sep 24, 2024
c58e46d
make & make CI: Small cleanups
lhoguin Sep 25, 2024
d01798c
make: Add new CT suites and clarify check on CT_SUITES
lhoguin Sep 25, 2024
db5cf69
Add missing test case to web_mqtt_shared_SUITE
lhoguin Sep 25, 2024
9605ce9
CT: No longer wait 3 minutes for node start
lhoguin Sep 25, 2024
aabfe9d
Bazel fixes following renaming of test suites
lhoguin Sep 27, 2024
262a1e2
Bazel CI: Fix workflow templates
lhoguin Sep 27, 2024
35849cf
Add missing suites to non-CI parallel-ct
lhoguin Sep 30, 2024
30d6557
Better fix for a Dialyzer warning
lhoguin Sep 30, 2024
187ab3f
Make parallel-ct properly detect test failures
lhoguin Oct 2, 2024
94e13a2
Make CI: Temporarily disable tests with OTP-27
lhoguin Oct 9, 2024
4856561
Make CI: Add forks of ct_master_event and ct_master_logs
lhoguin Oct 10, 2024
c1f9fc2
Make CI: Don't refresh logs at the end of ct_master run
lhoguin Oct 10, 2024
d76ba18
Make CI: Fix the master_runs.html css file paths
lhoguin Oct 10, 2024
8fc392f
Make CI: Fix a small issue in master_runs.html
lhoguin Oct 10, 2024
16db1f6
Reduce the amount of printing to the terminal during tests
lhoguin Oct 10, 2024
f5953b3
Make CI: Make ct_master handle all testspec instructions
lhoguin Oct 14, 2024
ec7300e
Make CI: Sort the results printout from ct_master
lhoguin Oct 14, 2024
54857ba
Make CI: Have ct_master return the test results
lhoguin Oct 15, 2024
f3f6e85
Make CI: Print auto-skipped and failed test cases at the end
lhoguin Oct 15, 2024
9e67212
Make CI: Bazel updates following ct_master work
lhoguin Oct 15, 2024
b6bdc01
Make CI: Check that CI knows about all CT_SUITES in CI
lhoguin Oct 17, 2024
1f28c01
Make CI: Always upload log_private CT logs
lhoguin Oct 17, 2024
6eca362
Make CI: Add mixed version testing
lhoguin Oct 21, 2024
2a37ed7
Make CI: Enable khepri mixed clusters testing
lhoguin Oct 25, 2024
9795ae6
Make CI: Add mixed version testing
lhoguin Oct 21, 2024
ce94809
Make CI: Enable khepri mixed clusters testing
lhoguin Oct 25, 2024
f0444e2
Enable Make CI on v4.0.x
lhoguin Nov 29, 2024
5c4e4a9
Make CI: Remove suite declarations wrongly added
lhoguin Nov 29, 2024
6f003b1
Disable Bazel CI on v4.0.x
lhoguin Nov 29, 2024
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
6 changes: 3 additions & 3 deletions .github/workflows/templates/test.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ name: Test
on:
push:
branches:
- main
- v4.0.x
#! - main
#! - v4.0.x
- v3.13.x
- v3.12.x
- v3.11.x
Expand All @@ -42,7 +42,7 @@ on:
- '*.bzl'
- '*.bazel'
- .github/workflows/test.yaml
pull_request:
#! pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
Expand Down
110 changes: 110 additions & 0 deletions .github/workflows/test-make-target.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Test target (make)
on:
workflow_call:
inputs:
erlang_version:
required: true
type: string
elixir_version:
required: true
type: string
metadata_store:
required: true
type: string
mixed_clusters:
required: false
default: false
type: boolean
make_target:
required: true
type: string
plugin:
required: true
type: string
jobs:
test:
name: ${{ inputs.plugin }} (${{ inputs.make_target }})
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: CHECKOUT REPOSITORY
uses: actions/checkout@v4

- name: FETCH TAGS
run: git fetch --tags

- name: SETUP OTP & ELIXIR
uses: erlef/[email protected]
with:
otp-version: ${{ inputs.erlang_version }}
elixir-version: ${{ inputs.elixir_version }}
hexpm-mirrors: |
https://builds.hex.pm
https://cdn.jsdelivr.net/hex
# This currently only applies to Elixir; and can be safely
# restricted to the build jobs to avoid duplication in output.
disable_problem_matchers: true

- name: MIXED CLUSTERS - FETCH SIGNING KEYS
uses: dsaltares/fetch-gh-release-asset@master
if: inputs.mixed_clusters
with:
repo: rabbitmq/signing-keys
file: rabbitmq-release-signing-key.asc

- name: MIXED CLUSTERS - FETCH PREVIOUS VERSION
id: fetch_secondary_dist
uses: dsaltares/fetch-gh-release-asset@master
if: inputs.mixed_clusters
with:
regex: true
file: "rabbitmq-server-generic-unix-[\\d.]*\\.tar.xz"
target: ./

- name: MIXED CLUSTERS - SETUP SECONDARY_DIST
if: inputs.mixed_clusters
run: |
gpg --import rabbitmq-release-signing-key.asc
gpg --verify rabbitmq-server-generic-unix-*.asc rabbitmq-server-generic-unix-*.tar.xz
tar xf rabbitmq-server-generic-unix-*.tar.xz

echo "SECONDARY_DIST=${GITHUB_WORKSPACE}/rabbitmq_server-`echo -n ${{ steps.fetch_secondary_dist.outputs.version }} | sed s/v//`" >> $GITHUB_ENV

- name: SETUP DOTNET (rabbit)
uses: actions/setup-dotnet@v4
if: inputs.plugin == 'rabbit'
with:
dotnet-version: '3.1.x'

- name: SETUP SLAPD (rabbitmq_auth_backend_ldap)
if: inputs.plugin == 'rabbitmq_auth_backend_ldap'
run: |
sudo apt-get update && \
sudo apt-get install -y \
apparmor-utils \
ldap-utils \
slapd

sudo aa-complain `which slapd`

- name: RUN TESTS
if: inputs.plugin != 'rabbitmq_cli'
run: |
make -C deps/${{ inputs.plugin }} ${{ inputs.make_target }} RABBITMQ_METADATA_STORE=${{ inputs.metadata_store }}

# rabbitmq_cli needs a correct broker version for two of its tests.
# But setting PROJECT_VERSION makes other plugins fail.
- name: RUN TESTS (rabbitmq_cli)
if: inputs.plugin == 'rabbitmq_cli'
run: |
make -C deps/${{ inputs.plugin }} ${{ inputs.make_target }} RABBITMQ_METADATA_STORE=${{ inputs.metadata_store }} PROJECT_VERSION="4.1.0"

- name: UPLOAD TEST LOGS
if: always()
uses: actions/upload-artifact@v4
with:
name: CT logs (${{ inputs.plugin }} ${{ inputs.make_target }} OTP-${{ inputs.erlang_version }} ${{ inputs.metadata_store }}${{ inputs.mixed_clusters && ' mixed' || '' }})
path: |
logs/
# !logs/**/log_private
if-no-files-found: ignore
121 changes: 121 additions & 0 deletions .github/workflows/test-make-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: Run tests (make)
on:
workflow_call:
inputs:
erlang_version:
required: true
type: string
elixir_version:
required: true
type: string
metadata_store:
required: true
type: string
mixed_clusters:
required: true
type: boolean
jobs:
test-rabbit:
name: Test rabbit
strategy:
fail-fast: false
matrix:
make_target:
- parallel-ct-set-1
- parallel-ct-set-2
- parallel-ct-set-3
- parallel-ct-set-4
- ct-clustering_management
- eunit ct-dead_lettering
- ct-feature_flags
- ct-metadata_store_clustering
- ct-quorum_queue
- ct-rabbit_stream_queue
uses: ./.github/workflows/test-make-target.yaml
with:
erlang_version: ${{ inputs.erlang_version }}
elixir_version: ${{ inputs.elixir_version }}
metadata_store: ${{ inputs.metadata_store }}
mixed_clusters: ${{ inputs.mixed_clusters }}
make_target: ${{ matrix.make_target }}
plugin: rabbit

test-rabbitmq-mqtt:
name: Test rabbitmq_mqtt
uses: ./.github/workflows/test-make-target.yaml
with:
erlang_version: ${{ inputs.erlang_version }}
elixir_version: ${{ inputs.elixir_version }}
metadata_store: ${{ inputs.metadata_store }}
mixed_clusters: ${{ inputs.mixed_clusters }}
make_target: parallel-ct-set-1
plugin: rabbitmq_mqtt

# The integration_SUITE requires secrets and
# is therefore run from a separate workflow.
test-rabbitmq-peer-discovery-aws:
name: Test rabbitmq_peer_discovery_aws (partially)
uses: ./.github/workflows/test-make-target.yaml
with:
erlang_version: ${{ inputs.erlang_version }}
elixir_version: ${{ inputs.elixir_version }}
metadata_store: ${{ inputs.metadata_store }}
mixed_clusters: ${{ inputs.mixed_clusters }}
make_target: ct-config_schema ct-unit
plugin: rabbitmq_peer_discovery_aws

test-plugin:
name: Test plugins
strategy:
fail-fast: false
matrix:
plugin:
- amqp10_client
- amqp10_common
- amqp_client
- oauth2_client
- rabbit_common
- rabbitmq_amqp_client
- rabbitmq_auth_backend_cache
- rabbitmq_auth_backend_http
- rabbitmq_auth_backend_ldap
- rabbitmq_auth_backend_oauth2
- rabbitmq_auth_mechanism_ssl
- rabbitmq_aws
- rabbitmq_cli
- rabbitmq_consistent_hash_exchange
- rabbitmq_event_exchange
- rabbitmq_federation
- rabbitmq_federation_management
- rabbitmq_federation_prometheus
- rabbitmq_jms_topic_exchange
- rabbitmq_management
- rabbitmq_management_agent
- rabbitmq_peer_discovery_common
- rabbitmq_peer_discovery_consul
- rabbitmq_peer_discovery_etcd
- rabbitmq_peer_discovery_k8s
- rabbitmq_prelaunch
- rabbitmq_prometheus
- rabbitmq_recent_history_exchange
- rabbitmq_sharding
- rabbitmq_shovel
- rabbitmq_shovel_management
- rabbitmq_shovel_prometheus
- rabbitmq_stomp
- rabbitmq_stream
- rabbitmq_stream_common
- rabbitmq_stream_management
- rabbitmq_tracing
- rabbitmq_trust_store
- rabbitmq_web_dispatch
- rabbitmq_web_mqtt
- rabbitmq_web_stomp
uses: ./.github/workflows/test-make-target.yaml
with:
erlang_version: ${{ inputs.erlang_version }}
elixir_version: ${{ inputs.elixir_version }}
metadata_store: ${{ inputs.metadata_store }}
mixed_clusters: ${{ inputs.mixed_clusters }}
make_target: tests
plugin: ${{ matrix.plugin }}
82 changes: 82 additions & 0 deletions .github/workflows/test-make-type-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Type check (make)
on:
workflow_call:
inputs:
erlang_version:
required: true
type: string
elixir_version:
required: true
type: string
jobs:
type-check-plugin:
name: Type check plugins
strategy:
fail-fast: false
matrix:
plugin:
# These are using plugin-specific test jobs.
- rabbit
- rabbitmq_mqtt
- rabbitmq_peer_discovery_aws
# These are from the test-plugin test job.
- amqp10_client
- amqp10_common
- amqp_client
- oauth2_client
- rabbit_common
- rabbitmq_amqp_client
- rabbitmq_auth_backend_cache
- rabbitmq_auth_backend_http
- rabbitmq_auth_backend_ldap
- rabbitmq_auth_backend_oauth2
- rabbitmq_auth_mechanism_ssl
- rabbitmq_aws
- rabbitmq_consistent_hash_exchange
- rabbitmq_event_exchange
- rabbitmq_federation
- rabbitmq_federation_management
- rabbitmq_federation_prometheus
- rabbitmq_jms_topic_exchange
- rabbitmq_management
- rabbitmq_management_agent
- rabbitmq_peer_discovery_common
- rabbitmq_peer_discovery_consul
# @todo We are getting errors because of wrong types
# in the eetcd dep. But upgrading requires using gun 2.0,
# which we can't because another app's dep, emqtt, requires
# gun 1.3.x. So for now we don't type check this plugin.
#- rabbitmq_peer_discovery_etcd
- rabbitmq_peer_discovery_k8s
- rabbitmq_prelaunch
- rabbitmq_prometheus
- rabbitmq_recent_history_exchange
- rabbitmq_sharding
- rabbitmq_shovel
- rabbitmq_shovel_management
- rabbitmq_shovel_prometheus
- rabbitmq_stomp
- rabbitmq_stream
- rabbitmq_stream_common
- rabbitmq_stream_management
- rabbitmq_tracing
- rabbitmq_trust_store
- rabbitmq_web_dispatch
- rabbitmq_web_mqtt
- rabbitmq_web_stomp
# This one we do not want to run tests so no corresponding test job.
- rabbitmq_ct_helpers
# These do not have tests at this time so no corresponding test job.
- rabbitmq_ct_client_helpers
- rabbitmq_random_exchange
- rabbitmq_top
- rabbitmq_web_mqtt_examples
- rabbitmq_web_stomp_examples
- trust_store_http
uses: ./.github/workflows/test-make-target.yaml
with:
erlang_version: ${{ inputs.erlang_version }}
elixir_version: ${{ inputs.elixir_version }}
metadata_store: khepri # Not actually used.
make_target: dialyze
plugin: ${{ matrix.plugin }}
Loading
Loading