diff --git a/.github/workflows/data/amqp10_client.yaml b/.github/workflows/data/amqp10_client.yaml new file mode 100644 index 000000000000..a1666ff5673c --- /dev/null +++ b/.github/workflows/data/amqp10_client.yaml @@ -0,0 +1,5 @@ +--- +amqp10_client: + suites: + - msg + - system diff --git a/.github/workflows/data/amqp10_common.yaml b/.github/workflows/data/amqp10_common.yaml new file mode 100644 index 000000000000..081eee481d2c --- /dev/null +++ b/.github/workflows/data/amqp10_common.yaml @@ -0,0 +1,7 @@ +--- +amqp10_common: + suites: + - binary_generator + - binary_parser + - prop + - serial_number diff --git a/.github/workflows/data/amqp_client.yaml b/.github/workflows/data/amqp_client.yaml new file mode 100644 index 000000000000..7a672c5d5745 --- /dev/null +++ b/.github/workflows/data/amqp_client.yaml @@ -0,0 +1,5 @@ +--- +amqp_client: + suites: + - system + - unit diff --git a/.github/workflows/data/oauth2_client.yaml b/.github/workflows/data/oauth2_client.yaml new file mode 100644 index 000000000000..692ea4fc3935 --- /dev/null +++ b/.github/workflows/data/oauth2_client.yaml @@ -0,0 +1,5 @@ +--- +oauth2_client: + suites: + - system + - unit diff --git a/.github/workflows/data/rabbit.yaml b/.github/workflows/data/rabbit.yaml new file mode 100644 index 000000000000..0cd5878565ae --- /dev/null +++ b/.github/workflows/data/rabbit.yaml @@ -0,0 +1,143 @@ +--- +rabbit: + suites: + - amqp_address + - amqp_auth + - amqp_client + - amqp_credit_api_v2 + - amqp_proxy_protocol + - amqp_system + - amqqueue_backward_compatibility + - backing_queue + - bindings + - channel_interceptor + - channel_operation_timeout + - classic_queue_prop + - cli_forget_cluster_node + - cluster + - cluster_minority + - clustering_management + - clustering_recovery + - config_schema + - confirms_rejects + - consumer_timeout + - crashing_queues + - dead_lettering + - definition_import + - deprecated_features + - direct_exchange_routing_v2 + - disconnect_detected_during_alarm + - disk_monitor + - dynamic_ha + - dynamic_qq + - eager_sync + - exchanges + - feature_flags + - feature_flags_v2 + - feature_flags_with_unpriveleged_user + - list_consumers_sanity_check + - list_queues_online_and_offline + - logging + - lqueue + - maintenance_mode + - many_node_ha + - mc_unit + - message_size_limit + - metadata_store_clustering + - metadata_store_migration + - metadata_store_phase1 + - metrics + - mirrored_supervisor + - msg_store + - peer_discovery_classic_config + - peer_discovery_dns + - peer_discovery_tmp_hidden_node + - per_node_limit + - per_user_connection_channel_limit + - per_user_connection_channel_limit_partitions + - per_user_connection_channel_tracking + - per_user_connection_tracking + - per_vhost_connection_limit + - per_vhost_connection_limit_partitions + - per_vhost_msg_store + - per_vhost_queue_limit + - policy + - priority_queue + - priority_queue_recovery + - product_info + - proxy_protocol + - publisher_confirms_parallel + - queue_length_limits + - queue_master_location + - queue_parallel + - queue_type + - quorum_queue + - quorum_queue_member_reconciliation + - rabbit_access_control + - rabbit_confirms + - rabbit_core_metrics_gc + - rabbit_cuttlefish + - rabbit_db_binding + - rabbit_db_exchange + - rabbit_db_maintenance + - rabbit_db_msup + - rabbit_db_policy + - rabbit_db_queue + - rabbit_db_topic_exchange + - rabbit_direct_reply_to_prop + - rabbit_fifo + - rabbit_fifo_dlx + - rabbit_fifo_dlx_integration + - rabbit_fifo_int + - rabbit_fifo_prop + - rabbit_fifo_v0 + - rabbit_message_interceptor + - rabbit_stream_coordinator + - rabbit_stream_queue + - rabbit_stream_sac_coordinator + - rabbitmq_4_0_deprecations + - rabbitmq_queues_cli_integration + - rabbitmqctl_integration + - rabbitmqctl_shutdown + - routing + - runtime_parameters + - signal_handling + - simple_ha + - single_active_consumer + - sync_detection + - term_to_binary_compat_prop + - topic_permission + - transactions + - unicode + - unit_access_control + - unit_access_control_authn_authz_context_propagation + - unit_access_control_credential_validation + - unit_amqp091_content_framing + - unit_amqp091_server_properties + - unit_app_management + - unit_classic_mirrored_queue_sync_throttling + - unit_classic_mirrored_queue_throughput + - unit_cluster_formation_locking_mocks + - unit_cluster_formation_sort_nodes + - unit_collections + - unit_config_value_encryption + - unit_connection_tracking + - unit_credit_flow + - unit_disk_monitor + - unit_file_handle_cache + - unit_gen_server2 + - unit_gm + - unit_log_management + - unit_operator_policy + - unit_pg_local + - unit_plugin_directories + - unit_plugin_versioning + - unit_policy_validators + - unit_priority_queue + - unit_queue_consumers + - unit_quorum_queue + - unit_stats_and_metrics + - unit_supervisor2 + - unit_vm_memory_monitor + - upgrade_preparation + - vhost diff --git a/.github/workflows/data/rabbit_common.yaml b/.github/workflows/data/rabbit_common.yaml new file mode 100644 index 000000000000..fa3b8db66502 --- /dev/null +++ b/.github/workflows/data/rabbit_common.yaml @@ -0,0 +1,9 @@ +--- +rabbit_common: + suites: + - rabbit_env + - supervisor2 + - unit + - unit_password_hashing + - unit_priority_queue + - worker_pool diff --git a/.github/workflows/data/rabbitmq_amqp1_0.yaml b/.github/workflows/data/rabbitmq_amqp1_0.yaml new file mode 100644 index 000000000000..691fae342320 --- /dev/null +++ b/.github/workflows/data/rabbitmq_amqp1_0.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_amqp1_0: + suites: [] diff --git a/.github/workflows/data/rabbitmq_amqp_client.yaml b/.github/workflows/data/rabbitmq_amqp_client.yaml new file mode 100644 index 000000000000..5f40bd084597 --- /dev/null +++ b/.github/workflows/data/rabbitmq_amqp_client.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_amqp_client: + suites: + - management diff --git a/.github/workflows/data/rabbitmq_auth_backend_cache.yaml b/.github/workflows/data/rabbitmq_auth_backend_cache.yaml new file mode 100644 index 000000000000..9847b59e3e92 --- /dev/null +++ b/.github/workflows/data/rabbitmq_auth_backend_cache.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_auth_backend_cache: + suites: + - config_schema + - rabbit_auth_backend_cache + - rabbit_auth_cache diff --git a/.github/workflows/data/rabbitmq_auth_backend_http.yaml b/.github/workflows/data/rabbitmq_auth_backend_http.yaml new file mode 100644 index 000000000000..65b3578656ab --- /dev/null +++ b/.github/workflows/data/rabbitmq_auth_backend_http.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_auth_backend_http: + suites: + - auth + - config_schema + - unit diff --git a/.github/workflows/data/rabbitmq_auth_backend_ldap.yaml b/.github/workflows/data/rabbitmq_auth_backend_ldap.yaml new file mode 100644 index 000000000000..1342f7f32a80 --- /dev/null +++ b/.github/workflows/data/rabbitmq_auth_backend_ldap.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_auth_backend_ldap: + suites: + - config_schema + - system + - unit diff --git a/.github/workflows/data/rabbitmq_auth_backend_oauth2.yaml b/.github/workflows/data/rabbitmq_auth_backend_oauth2.yaml new file mode 100644 index 000000000000..262b57c5fb5e --- /dev/null +++ b/.github/workflows/data/rabbitmq_auth_backend_oauth2.yaml @@ -0,0 +1,12 @@ +--- +rabbitmq_auth_backend_oauth2: + suites: + - add_signing_key_command + - add_uaa_key_command + - config_schema + - jwks + - rabbit_oauth2_config + - scope + - system + - unit + - wildcard_match diff --git a/.github/workflows/data/rabbitmq_auth_mechanism_ssl.yaml b/.github/workflows/data/rabbitmq_auth_mechanism_ssl.yaml new file mode 100644 index 000000000000..5450d8558177 --- /dev/null +++ b/.github/workflows/data/rabbitmq_auth_mechanism_ssl.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_auth_mechanism_ssl: + suites: [] diff --git a/.github/workflows/data/rabbitmq_aws.yaml b/.github/workflows/data/rabbitmq_aws.yaml new file mode 100644 index 000000000000..da203666a419 --- /dev/null +++ b/.github/workflows/data/rabbitmq_aws.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_aws: + suites: [] diff --git a/.github/workflows/data/rabbitmq_consistent_hash_exchange.yaml b/.github/workflows/data/rabbitmq_consistent_hash_exchange.yaml new file mode 100644 index 000000000000..a4efb445761e --- /dev/null +++ b/.github/workflows/data/rabbitmq_consistent_hash_exchange.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_consistent_hash_exchange: + suites: + - rabbit_exchange_type_consistent_hash diff --git a/.github/workflows/data/rabbitmq_ct_client_helpers.yaml b/.github/workflows/data/rabbitmq_ct_client_helpers.yaml new file mode 100644 index 000000000000..f76ba0dda1a0 --- /dev/null +++ b/.github/workflows/data/rabbitmq_ct_client_helpers.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_ct_client_helpers: + suites: [] diff --git a/.github/workflows/data/rabbitmq_ct_helpers.yaml b/.github/workflows/data/rabbitmq_ct_helpers.yaml new file mode 100644 index 000000000000..54b1fb85ce26 --- /dev/null +++ b/.github/workflows/data/rabbitmq_ct_helpers.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_ct_helpers: + suites: + - terraform diff --git a/.github/workflows/data/rabbitmq_event_exchange.yaml b/.github/workflows/data/rabbitmq_event_exchange.yaml new file mode 100644 index 000000000000..1058174f66e5 --- /dev/null +++ b/.github/workflows/data/rabbitmq_event_exchange.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_event_exchange: + suites: + - config_schema + - system + - unit diff --git a/.github/workflows/data/rabbitmq_federation.yaml b/.github/workflows/data/rabbitmq_federation.yaml new file mode 100644 index 000000000000..be472238439a --- /dev/null +++ b/.github/workflows/data/rabbitmq_federation.yaml @@ -0,0 +1,10 @@ +--- +rabbitmq_federation: + suites: + - exchange + - federation_status_command + - queue + - rabbit_federation_status + - restart_federation_link_command + - unit + - unit_inbroker diff --git a/.github/workflows/data/rabbitmq_federation_management.yaml b/.github/workflows/data/rabbitmq_federation_management.yaml new file mode 100644 index 000000000000..7b9fa16359b2 --- /dev/null +++ b/.github/workflows/data/rabbitmq_federation_management.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_federation_management: + suites: + - federation_mgmt diff --git a/.github/workflows/data/rabbitmq_jms_topic_exchange.yaml b/.github/workflows/data/rabbitmq_jms_topic_exchange.yaml new file mode 100644 index 000000000000..8fb7241f8d4e --- /dev/null +++ b/.github/workflows/data/rabbitmq_jms_topic_exchange.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_jms_topic_exchange: + suites: + - rjms_topic_selector + - rjms_topic_selector_unit + - sjx_evaluation diff --git a/.github/workflows/data/rabbitmq_management.yaml b/.github/workflows/data/rabbitmq_management.yaml new file mode 100644 index 000000000000..189fc59f5b94 --- /dev/null +++ b/.github/workflows/data/rabbitmq_management.yaml @@ -0,0 +1,17 @@ +--- +rabbitmq_management: + suites: + - cache + - clustering + - clustering_prop + - config_schema + - listener_config + - rabbit_mgmt_http + - rabbit_mgmt_http_health_checks + - rabbit_mgmt_only_http + - rabbit_mgmt_rabbitmqadmin + - rabbit_mgmt_stats + - rabbit_mgmt_test_db + - rabbit_mgmt_test_unit + - rabbit_mgmt_wm_auth + - stats diff --git a/.github/workflows/data/rabbitmq_management_agent.yaml b/.github/workflows/data/rabbitmq_management_agent.yaml new file mode 100644 index 000000000000..7baf3e12d272 --- /dev/null +++ b/.github/workflows/data/rabbitmq_management_agent.yaml @@ -0,0 +1,7 @@ +--- +rabbitmq_management_agent: + suites: + - exometer_slide + - metrics + - rabbit_mgmt_gc + - rabbit_mgmt_slide diff --git a/.github/workflows/data/rabbitmq_mqtt.yaml b/.github/workflows/data/rabbitmq_mqtt.yaml new file mode 100644 index 000000000000..e6956f27b7ae --- /dev/null +++ b/.github/workflows/data/rabbitmq_mqtt.yaml @@ -0,0 +1,22 @@ +--- +rabbitmq_mqtt: + suites: + - auth + - cluster + - command + - config + - config_schema + - ff + - java + - mc_mqtt + - mqtt_machine + - packet_prop + - processor + - protocol_interop + - proxy_protocol + - rabbit_mqtt_confirms + - reader + - retainer + - shared + - util + - v5 diff --git a/.github/workflows/data/rabbitmq_peer_discovery_aws.yaml b/.github/workflows/data/rabbitmq_peer_discovery_aws.yaml new file mode 100644 index 000000000000..e567065ab809 --- /dev/null +++ b/.github/workflows/data/rabbitmq_peer_discovery_aws.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_peer_discovery_aws: + suites: + - config_schema + - integration + - unit diff --git a/.github/workflows/data/rabbitmq_peer_discovery_common.yaml b/.github/workflows/data/rabbitmq_peer_discovery_common.yaml new file mode 100644 index 000000000000..7a7d69a728a8 --- /dev/null +++ b/.github/workflows/data/rabbitmq_peer_discovery_common.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_peer_discovery_common: + suites: + - config_schema diff --git a/.github/workflows/data/rabbitmq_peer_discovery_consul.yaml b/.github/workflows/data/rabbitmq_peer_discovery_consul.yaml new file mode 100644 index 000000000000..00d27279a91a --- /dev/null +++ b/.github/workflows/data/rabbitmq_peer_discovery_consul.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_peer_discovery_consul: + suites: + - config_schema + - rabbitmq_peer_discovery_consul diff --git a/.github/workflows/data/rabbitmq_peer_discovery_etcd.yaml b/.github/workflows/data/rabbitmq_peer_discovery_etcd.yaml new file mode 100644 index 000000000000..25070d249e0c --- /dev/null +++ b/.github/workflows/data/rabbitmq_peer_discovery_etcd.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_peer_discovery_etcd: + suites: + - config_schema + - system + - unit diff --git a/.github/workflows/data/rabbitmq_peer_discovery_k8s.yaml b/.github/workflows/data/rabbitmq_peer_discovery_k8s.yaml new file mode 100644 index 000000000000..99d71aa88c26 --- /dev/null +++ b/.github/workflows/data/rabbitmq_peer_discovery_k8s.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_peer_discovery_k8s: + suites: + - config_schema + - rabbitmq_peer_discovery_k8s diff --git a/.github/workflows/data/rabbitmq_prelaunch.yaml b/.github/workflows/data/rabbitmq_prelaunch.yaml new file mode 100644 index 000000000000..50a4632ab12f --- /dev/null +++ b/.github/workflows/data/rabbitmq_prelaunch.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_prelaunch: + suites: + - rabbit_logger_std_h + - rabbit_prelaunch_file diff --git a/.github/workflows/data/rabbitmq_prometheus.yaml b/.github/workflows/data/rabbitmq_prometheus.yaml new file mode 100644 index 000000000000..e9c88974a49c --- /dev/null +++ b/.github/workflows/data/rabbitmq_prometheus.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_prometheus: + suites: + - config_schema + - prometheus_rabbitmq_federation_collector + - rabbit_prometheus_http diff --git a/.github/workflows/data/rabbitmq_random_exchange.yaml b/.github/workflows/data/rabbitmq_random_exchange.yaml new file mode 100644 index 000000000000..fb4a9c1255ab --- /dev/null +++ b/.github/workflows/data/rabbitmq_random_exchange.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_random_exchange: + suites: [] diff --git a/.github/workflows/data/rabbitmq_recent_history_exchange.yaml b/.github/workflows/data/rabbitmq_recent_history_exchange.yaml new file mode 100644 index 000000000000..11980bbac8f2 --- /dev/null +++ b/.github/workflows/data/rabbitmq_recent_history_exchange.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_recent_history_exchange: + suites: + - system diff --git a/.github/workflows/data/rabbitmq_sharding.yaml b/.github/workflows/data/rabbitmq_sharding.yaml new file mode 100644 index 000000000000..9de54194c955 --- /dev/null +++ b/.github/workflows/data/rabbitmq_sharding.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_sharding: + suites: + - rabbit_hash_exchange + - rabbit_sharding diff --git a/.github/workflows/data/rabbitmq_shovel.yaml b/.github/workflows/data/rabbitmq_shovel.yaml new file mode 100644 index 000000000000..1a059be1dbe2 --- /dev/null +++ b/.github/workflows/data/rabbitmq_shovel.yaml @@ -0,0 +1,13 @@ +--- +rabbitmq_shovel: + suites: + - amqp10 + - amqp10_dynamic + - amqp10_shovel + - config + - configuration + - delete_shovel_command + - dynamic + - parameters + - rolling_upgrade + - shovel_status_command diff --git a/.github/workflows/data/rabbitmq_shovel_management.yaml b/.github/workflows/data/rabbitmq_shovel_management.yaml new file mode 100644 index 000000000000..04705ebf5f77 --- /dev/null +++ b/.github/workflows/data/rabbitmq_shovel_management.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq_shovel_management: + suites: + - http + - rabbit_shovel_mgmt + - rabbit_shovel_mgmt_util diff --git a/.github/workflows/data/rabbitmq_stomp.yaml b/.github/workflows/data/rabbitmq_stomp.yaml new file mode 100644 index 000000000000..e7ca205b0277 --- /dev/null +++ b/.github/workflows/data/rabbitmq_stomp.yaml @@ -0,0 +1,12 @@ +--- +rabbitmq_stomp: + suites: + - command + - config_schema + - connections + - frame + - proxy_protocol + - python + - system + - topic + - util diff --git a/.github/workflows/data/rabbitmq_stream.yaml b/.github/workflows/data/rabbitmq_stream.yaml new file mode 100644 index 000000000000..f4d70d730b1e --- /dev/null +++ b/.github/workflows/data/rabbitmq_stream.yaml @@ -0,0 +1,10 @@ +--- +rabbitmq_stream: + suites: + - commands + - config_schema + - protocol_interop + - rabbit_stream + - rabbit_stream_manager + - rabbit_stream_reader + - rabbit_stream_utils diff --git a/.github/workflows/data/rabbitmq_stream_common.yaml b/.github/workflows/data/rabbitmq_stream_common.yaml new file mode 100644 index 000000000000..9f17d871b39d --- /dev/null +++ b/.github/workflows/data/rabbitmq_stream_common.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_stream_common: + suites: + - rabbit_stream_core diff --git a/.github/workflows/data/rabbitmq_stream_management.yaml b/.github/workflows/data/rabbitmq_stream_management.yaml new file mode 100644 index 000000000000..f7af7ffe3a50 --- /dev/null +++ b/.github/workflows/data/rabbitmq_stream_management.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_stream_management: + suites: + - http diff --git a/.github/workflows/data/rabbitmq_top.yaml b/.github/workflows/data/rabbitmq_top.yaml new file mode 100644 index 000000000000..c1a795023b71 --- /dev/null +++ b/.github/workflows/data/rabbitmq_top.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_top: + suites: [] diff --git a/.github/workflows/data/rabbitmq_tracing.yaml b/.github/workflows/data/rabbitmq_tracing.yaml new file mode 100644 index 000000000000..9550759633da --- /dev/null +++ b/.github/workflows/data/rabbitmq_tracing.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq_tracing: + suites: + - rabbit_tracing diff --git a/.github/workflows/data/rabbitmq_trust_store.yaml b/.github/workflows/data/rabbitmq_trust_store.yaml new file mode 100644 index 000000000000..6b1cb6b59a1a --- /dev/null +++ b/.github/workflows/data/rabbitmq_trust_store.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_trust_store: + suites: + - config_schema + - system diff --git a/.github/workflows/data/rabbitmq_web_dispatch.yaml b/.github/workflows/data/rabbitmq_web_dispatch.yaml new file mode 100644 index 000000000000..157ee229ee7c --- /dev/null +++ b/.github/workflows/data/rabbitmq_web_dispatch.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq_web_dispatch: + suites: + - rabbit_web_dispatch + - rabbit_web_dispatch_unit diff --git a/.github/workflows/data/rabbitmq_web_mqtt.yaml b/.github/workflows/data/rabbitmq_web_mqtt.yaml new file mode 100644 index 000000000000..e5ebbe4ad8ae --- /dev/null +++ b/.github/workflows/data/rabbitmq_web_mqtt.yaml @@ -0,0 +1,7 @@ +--- +rabbitmq_web_mqtt: + suites: + - command + - config_schema + - proxy_protocol + - system diff --git a/.github/workflows/data/rabbitmq_web_mqtt_examples.yaml b/.github/workflows/data/rabbitmq_web_mqtt_examples.yaml new file mode 100644 index 000000000000..a12269956d9f --- /dev/null +++ b/.github/workflows/data/rabbitmq_web_mqtt_examples.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_web_mqtt_examples: + suites: [] diff --git a/.github/workflows/data/rabbitmq_web_stomp.yaml b/.github/workflows/data/rabbitmq_web_stomp.yaml new file mode 100644 index 000000000000..ffbf9b08691e --- /dev/null +++ b/.github/workflows/data/rabbitmq_web_stomp.yaml @@ -0,0 +1,9 @@ +--- +rabbitmq_web_stomp: + suites: + - amqp_stomp + - config_schema + - cowboy_websocket + - proxy_protocol + - raw_websocket + - unit diff --git a/.github/workflows/data/rabbitmq_web_stomp_examples.yaml b/.github/workflows/data/rabbitmq_web_stomp_examples.yaml new file mode 100644 index 000000000000..0a1d52298a26 --- /dev/null +++ b/.github/workflows/data/rabbitmq_web_stomp_examples.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq_web_stomp_examples: + suites: [] diff --git a/.github/workflows/data/trust_store_http.yaml b/.github/workflows/data/trust_store_http.yaml new file mode 100644 index 000000000000..d1d14ceeb77a --- /dev/null +++ b/.github/workflows/data/trust_store_http.yaml @@ -0,0 +1,3 @@ +--- +trust_store_http: + suites: [] diff --git a/.github/workflows/templates/test-make.template.yaml b/.github/workflows/templates/test-make.template.yaml new file mode 100644 index 000000000000..b68fd8c0bc64 --- /dev/null +++ b/.github/workflows/templates/test-make.template.yaml @@ -0,0 +1,334 @@ +#@ load("@ytt:data", "data") +#@yaml/text-templated-strings + +#@ def job_names(plugins): +#@ names = [] +#@ for p in plugins: +#@ names.append("test-"+p) +#@ end +#@ return names +#@ end + +#@ def cache_prefix(name): +#@ prefix = "${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-" +#@ prefix += name +#@ if data.values.mixed_version_ref: +#@ prefix += "-mixed-"+data.values.mixed_version_ref +#@ end +#@ prefix += "-${{ matrix.metadata_store }}-${{ matrix.otp_version }}" +#@ return prefix +#@ end + +#@ def test_plugin(name, needs, suites): + test-(@= name @): + name: Test (@= name @) + needs: #@ needs + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + #@ if name == "rabbit": + - name: INSTALL DOTNET + run: | + sudo apt-get update && \ + sudo apt-get install -y dotnet-sdk-6.0 + #@ end + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true +#@ if data.values.mixed_version_ref != "none": + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true +#@ end + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: (@= cache_prefix(name) @)-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + (@= cache_prefix(name) @)-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + (@= cache_prefix(name) @)-${{ github.run_number }}- + (@= cache_prefix(name) @)- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} +#@ if data.values.mixed_version_ref == "none": + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/(@= name @) \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: #@ name == "rabbitmq_ct_helpers" or name == "trust_store_http" + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/(@= name @) \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi +#@ end +#@ for suite in suites: + - name: CT (@= suite if data.values.mixed_version_ref == "none" else suite + " MIXED" @) +#@ if name == "rabbitmq_peer_discovery_aws": +#@ if suite == "integration": + if: false +#@ end +#@ end + working-directory: ${{ env.PRIMARY_VERSION_PATH }} +#@ if data.values.mixed_version_ref != "none": + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} +#@ end + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-(@= suite @) ]]; then + echo "ct-(@= suite @) already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/(@= name @) \ + ct-(@= suite @) \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-(@= suite @) + fi +#@ end + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: (@= cache_prefix(name) @)-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-(@= name @)-${{ matrix.metadata_store }}-${{ matrix.otp_version }}(@= "-mixed" if data.values.mixed_version_ref != "none" else "" @) + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/(@= name @)/logs/* +#@ end + +#@yaml/text-templated-strings +#@ def test_cli(needs): + test-rabbitmq_cli: + name: Test rabbitmq_cli + needs: #@ needs + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 20 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true +#@ if data.values.mixed_version_ref != "none": + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true +#@ end + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: (@= cache_prefix('rabbitmq_cli') @)-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + (@= cache_prefix('rabbitmq_cli') @)-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + (@= cache_prefix('rabbitmq_cli') @)-${{ github.run_number }}- + (@= cache_prefix('rabbitmq_cli') @)- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: TEST(@= "" if data.values.mixed_version_ref == "none" else " MIXED" @) + id: test + working-directory: ${{ env.PRIMARY_VERSION_PATH }} +#@ if data.values.mixed_version_ref != "none": + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} +#@ end + run: | + if [[ -f ${{ env.CACHE_PATH }}/checks ]]; then + echo "checks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_cli \ + checks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/checks + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: (@= cache_prefix('rabbitmq_cli') @)-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_cli-${{ matrix.metadata_store }}-${{ matrix.otp_version }}(@= "-mixed" if data.values.mixed_version_ref != "none" else "" @) + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_cli/logs/* +#@ end + +--- +#@ load("@ytt:template", "template") +name: #@ "Test (make)" + (" Mixed Versions" if data.values.mixed_version_ref != "none" else "" ) +on: + push: + branches: + - main + - v3.13.x + - v3.12.x + - v3.11.x + pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +env: + PRIMARY_VERSION_PATH: rabbitmq-server + MIXED_VERSION_PATH: secondary-umbrella + CACHE_PATH: /home/runner/test-result-cache +jobs: + xref: + runs-on: ubuntu-latest + outputs: + hash: ${{ steps.hash.outputs.hash }} + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + - name: SETUP ERLANG/ELIXIR + if: steps.check.outputs.passed != 'true' + uses: erlef/setup-beam@v1 + with: + otp-version: 26.2 + elixir-version: 1.15 + - name: ENSURE WORKFLOWS ARE UP TO DATE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + mkdir local-bin/ + curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash + + make actions-workflows YTT=$PWD/local-bin/ytt + git diff --exit-code + - name: COMPUTE REPO HASH + id: hash + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + echo "hash=${{ hashFiles('**', '!WORKSPACE', '!.github/**', '!**.bazel', '!**.bzl', '!**/BUILD.*') }}" | tee -a $GITHUB_OUTPUT + - name: CACHE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }} + - name: BUILD + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + make +#@ if data.values.mixed_version_ref == "none": + - name: XREF + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + make xref + - name: CACHE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }} +#@ end +#@ if data.values.mixed_version_ref != "none": + - name: CHECKOUT MIXED VERSION REPOSITORY + uses: actions/checkout@v4 + with: + ref: #@ data.values.mixed_version_ref + path: ${{ env.MIXED_VERSION_PATH }} + - name: CACHE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }}-mixed + - name: BUILD + working-directory: ${{ env.MIXED_VERSION_PATH }} + run: | + make +#@ end +#@ for plugin in data.values.internal_deps: + _: #@ template.replace(test_plugin(plugin, ["xref"], data.values[plugin].suites)) +#@ end + _: #@ template.replace(test_plugin("rabbit", ["xref"] + job_names(data.values.internal_deps), data.values.rabbit.suites)) + _: #@ template.replace(test_cli(["xref", "test-rabbit"])) +#@ for plugin in data.values.tier1_plugins: + _: #@ template.replace(test_plugin(plugin, ["xref"], data.values[plugin].suites)) +#@ end + summary-test-make: + if: always() + needs: #@ ["xref", "test-rabbit", "test-rabbitmq_cli"] + job_names(data.values.internal_deps + data.values.tier1_plugins) + runs-on: ubuntu-latest + steps: + - name: SUMMARY + run: | + cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' + ${{ toJson(needs) }} + EOF diff --git a/.github/workflows/test-make-mixed.yaml b/.github/workflows/test-make-mixed.yaml new file mode 100644 index 000000000000..a07e563cdce2 --- /dev/null +++ b/.github/workflows/test-make-mixed.yaml @@ -0,0 +1,7317 @@ +name: Test (make) Mixed Versions +on: + push: + branches: + - main + - v3.13.x + - v3.12.x + - v3.11.x + pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +env: + PRIMARY_VERSION_PATH: rabbitmq-server + MIXED_VERSION_PATH: secondary-umbrella + CACHE_PATH: /home/runner/test-result-cache +jobs: + xref: + runs-on: ubuntu-latest + outputs: + hash: ${{ steps.hash.outputs.hash }} + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + - name: SETUP ERLANG/ELIXIR + if: steps.check.outputs.passed != 'true' + uses: erlef/setup-beam@v1 + with: + otp-version: 26.2 + elixir-version: 1.15 + - name: ENSURE WORKFLOWS ARE UP TO DATE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + mkdir local-bin/ + curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash + + make actions-workflows YTT=$PWD/local-bin/ytt + git diff --exit-code + - name: COMPUTE REPO HASH + id: hash + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + echo "hash=${{ hashFiles('**', '!WORKSPACE', '!.github/**', '!**.bazel', '!**.bzl', '!**/BUILD.*') }}" | tee -a $GITHUB_OUTPUT + - name: CACHE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }} + - name: BUILD + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + make + - name: CHECKOUT MIXED VERSION REPOSITORY + uses: actions/checkout@v4 + with: + ref: v3.13.x + path: ${{ env.MIXED_VERSION_PATH }} + - name: CACHE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }}-mixed + - name: BUILD + working-directory: ${{ env.MIXED_VERSION_PATH }} + run: | + make + test-amqp10_client: + name: Test amqp10_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT msg MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-msg ]]; then + echo "ct-msg already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + ct-msg \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-msg + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp10_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp10_client/logs/* + test-amqp10_common: + name: Test amqp10_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT binary_generator MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-binary_generator ]]; then + echo "ct-binary_generator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-binary_generator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-binary_generator + fi + - name: CT binary_parser MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-binary_parser ]]; then + echo "ct-binary_parser already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-binary_parser \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-binary_parser + fi + - name: CT prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-prop ]]; then + echo "ct-prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-prop + fi + - name: CT serial_number MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-serial_number ]]; then + echo "ct-serial_number already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-serial_number \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-serial_number + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp10_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp10_common/logs/* + test-amqp_client: + name: Test amqp_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp_client/logs/* + test-oauth2_client: + name: Test oauth2_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-oauth2_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/oauth2_client/logs/* + test-rabbit_common: + name: Test rabbit_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_env MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_env ]]; then + echo "ct-rabbit_env already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-rabbit_env \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_env + fi + - name: CT supervisor2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-supervisor2 ]]; then + echo "ct-supervisor2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-supervisor2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-supervisor2 + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT unit_password_hashing MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_password_hashing ]]; then + echo "ct-unit_password_hashing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit_password_hashing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_password_hashing + fi + - name: CT unit_priority_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_priority_queue ]]; then + echo "ct-unit_priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit_priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_priority_queue + fi + - name: CT worker_pool MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-worker_pool ]]; then + echo "ct-worker_pool already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-worker_pool \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-worker_pool + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbit_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbit_common/logs/* + test-rabbitmq_ct_client_helpers: + name: Test rabbitmq_ct_client_helpers + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_ct_client_helpers-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_ct_client_helpers/logs/* + test-rabbitmq_ct_helpers: + name: Test rabbitmq_ct_helpers + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT terraform MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-terraform ]]; then + echo "ct-terraform already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_helpers \ + ct-terraform \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-terraform + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_ct_helpers-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_ct_helpers/logs/* + test-rabbitmq_stream_common: + name: Test rabbitmq_stream_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_stream_core MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_core ]]; then + echo "ct-rabbit_stream_core already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_common \ + ct-rabbit_stream_core \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_core + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream_common/logs/* + test-trust_store_http: + name: Test trust_store_http + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-trust_store_http-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/trust_store_http/logs/* + test-rabbit: + name: Test rabbit + needs: + - xref + - test-amqp10_client + - test-amqp10_common + - test-amqp_client + - test-oauth2_client + - test-rabbit_common + - test-rabbitmq_ct_client_helpers + - test-rabbitmq_ct_helpers + - test-rabbitmq_stream_common + - test-trust_store_http + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: INSTALL DOTNET + run: | + sudo apt-get update && \ + sudo apt-get install -y dotnet-sdk-6.0 + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT amqp_address MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_address ]]; then + echo "ct-amqp_address already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_address \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_address + fi + - name: CT amqp_auth MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_auth ]]; then + echo "ct-amqp_auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_auth + fi + - name: CT amqp_client MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_client ]]; then + echo "ct-amqp_client already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_client \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_client + fi + - name: CT amqp_credit_api_v2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_credit_api_v2 ]]; then + echo "ct-amqp_credit_api_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_credit_api_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_credit_api_v2 + fi + - name: CT amqp_proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_proxy_protocol ]]; then + echo "ct-amqp_proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_proxy_protocol + fi + - name: CT amqp_system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_system ]]; then + echo "ct-amqp_system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_system + fi + - name: CT amqqueue_backward_compatibility MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqqueue_backward_compatibility ]]; then + echo "ct-amqqueue_backward_compatibility already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqqueue_backward_compatibility \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqqueue_backward_compatibility + fi + - name: CT backing_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-backing_queue ]]; then + echo "ct-backing_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-backing_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-backing_queue + fi + - name: CT bindings MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-bindings ]]; then + echo "ct-bindings already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-bindings \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-bindings + fi + - name: CT channel_interceptor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-channel_interceptor ]]; then + echo "ct-channel_interceptor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-channel_interceptor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-channel_interceptor + fi + - name: CT channel_operation_timeout MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-channel_operation_timeout ]]; then + echo "ct-channel_operation_timeout already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-channel_operation_timeout \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-channel_operation_timeout + fi + - name: CT classic_queue_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-classic_queue_prop ]]; then + echo "ct-classic_queue_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-classic_queue_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-classic_queue_prop + fi + - name: CT cli_forget_cluster_node MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cli_forget_cluster_node ]]; then + echo "ct-cli_forget_cluster_node already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cli_forget_cluster_node \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cli_forget_cluster_node + fi + - name: CT cluster MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster ]]; then + echo "ct-cluster already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cluster \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster + fi + - name: CT cluster_minority MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster_minority ]]; then + echo "ct-cluster_minority already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cluster_minority \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster_minority + fi + - name: CT clustering_management MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_management ]]; then + echo "ct-clustering_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-clustering_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_management + fi + - name: CT clustering_recovery MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_recovery ]]; then + echo "ct-clustering_recovery already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-clustering_recovery \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_recovery + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT confirms_rejects MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-confirms_rejects ]]; then + echo "ct-confirms_rejects already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-confirms_rejects \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-confirms_rejects + fi + - name: CT consumer_timeout MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-consumer_timeout ]]; then + echo "ct-consumer_timeout already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-consumer_timeout \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-consumer_timeout + fi + - name: CT crashing_queues MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-crashing_queues ]]; then + echo "ct-crashing_queues already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-crashing_queues \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-crashing_queues + fi + - name: CT dead_lettering MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dead_lettering ]]; then + echo "ct-dead_lettering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dead_lettering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dead_lettering + fi + - name: CT definition_import MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-definition_import ]]; then + echo "ct-definition_import already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-definition_import \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-definition_import + fi + - name: CT deprecated_features MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-deprecated_features ]]; then + echo "ct-deprecated_features already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-deprecated_features \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-deprecated_features + fi + - name: CT direct_exchange_routing_v2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-direct_exchange_routing_v2 ]]; then + echo "ct-direct_exchange_routing_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-direct_exchange_routing_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-direct_exchange_routing_v2 + fi + - name: CT disconnect_detected_during_alarm MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-disconnect_detected_during_alarm ]]; then + echo "ct-disconnect_detected_during_alarm already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-disconnect_detected_during_alarm \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-disconnect_detected_during_alarm + fi + - name: CT disk_monitor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-disk_monitor ]]; then + echo "ct-disk_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-disk_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-disk_monitor + fi + - name: CT dynamic_ha MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic_ha ]]; then + echo "ct-dynamic_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dynamic_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic_ha + fi + - name: CT dynamic_qq MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic_qq ]]; then + echo "ct-dynamic_qq already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dynamic_qq \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic_qq + fi + - name: CT eager_sync MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-eager_sync ]]; then + echo "ct-eager_sync already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-eager_sync \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-eager_sync + fi + - name: CT exchanges MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exchanges ]]; then + echo "ct-exchanges already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-exchanges \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exchanges + fi + - name: CT feature_flags MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags ]]; then + echo "ct-feature_flags already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags + fi + - name: CT feature_flags_v2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags_v2 ]]; then + echo "ct-feature_flags_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags_v2 + fi + - name: CT feature_flags_with_unpriveleged_user MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags_with_unpriveleged_user ]]; then + echo "ct-feature_flags_with_unpriveleged_user already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags_with_unpriveleged_user \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags_with_unpriveleged_user + fi + - name: CT list_consumers_sanity_check MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-list_consumers_sanity_check ]]; then + echo "ct-list_consumers_sanity_check already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-list_consumers_sanity_check \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-list_consumers_sanity_check + fi + - name: CT list_queues_online_and_offline MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-list_queues_online_and_offline ]]; then + echo "ct-list_queues_online_and_offline already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-list_queues_online_and_offline \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-list_queues_online_and_offline + fi + - name: CT logging MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-logging ]]; then + echo "ct-logging already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-logging \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-logging + fi + - name: CT lqueue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-lqueue ]]; then + echo "ct-lqueue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-lqueue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-lqueue + fi + - name: CT maintenance_mode MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-maintenance_mode ]]; then + echo "ct-maintenance_mode already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-maintenance_mode \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-maintenance_mode + fi + - name: CT many_node_ha MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-many_node_ha ]]; then + echo "ct-many_node_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-many_node_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-many_node_ha + fi + - name: CT mc_unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mc_unit ]]; then + echo "ct-mc_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-mc_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mc_unit + fi + - name: CT message_size_limit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-message_size_limit ]]; then + echo "ct-message_size_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-message_size_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-message_size_limit + fi + - name: CT metadata_store_clustering MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_clustering ]]; then + echo "ct-metadata_store_clustering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_clustering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_clustering + fi + - name: CT metadata_store_migration MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_migration ]]; then + echo "ct-metadata_store_migration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_migration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_migration + fi + - name: CT metadata_store_phase1 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_phase1 ]]; then + echo "ct-metadata_store_phase1 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_phase1 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_phase1 + fi + - name: CT metrics MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metrics ]]; then + echo "ct-metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metrics + fi + - name: CT mirrored_supervisor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mirrored_supervisor ]]; then + echo "ct-mirrored_supervisor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-mirrored_supervisor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mirrored_supervisor + fi + - name: CT msg_store MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-msg_store ]]; then + echo "ct-msg_store already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-msg_store \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-msg_store + fi + - name: CT peer_discovery_classic_config MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_classic_config ]]; then + echo "ct-peer_discovery_classic_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_classic_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_classic_config + fi + - name: CT peer_discovery_dns MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_dns ]]; then + echo "ct-peer_discovery_dns already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_dns \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_dns + fi + - name: CT peer_discovery_tmp_hidden_node MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_tmp_hidden_node ]]; then + echo "ct-peer_discovery_tmp_hidden_node already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_tmp_hidden_node \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_tmp_hidden_node + fi + - name: CT per_node_limit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_node_limit ]]; then + echo "ct-per_node_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_node_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_node_limit + fi + - name: CT per_user_connection_channel_limit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit ]]; then + echo "ct-per_user_connection_channel_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit + fi + - name: CT per_user_connection_channel_limit_partitions MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit_partitions ]]; then + echo "ct-per_user_connection_channel_limit_partitions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_limit_partitions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit_partitions + fi + - name: CT per_user_connection_channel_tracking MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_tracking ]]; then + echo "ct-per_user_connection_channel_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_tracking + fi + - name: CT per_user_connection_tracking MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_tracking ]]; then + echo "ct-per_user_connection_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_tracking + fi + - name: CT per_vhost_connection_limit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit ]]; then + echo "ct-per_vhost_connection_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_connection_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit + fi + - name: CT per_vhost_connection_limit_partitions MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit_partitions ]]; then + echo "ct-per_vhost_connection_limit_partitions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_connection_limit_partitions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit_partitions + fi + - name: CT per_vhost_msg_store MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_msg_store ]]; then + echo "ct-per_vhost_msg_store already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_msg_store \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_msg_store + fi + - name: CT per_vhost_queue_limit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_queue_limit ]]; then + echo "ct-per_vhost_queue_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_queue_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_queue_limit + fi + - name: CT policy MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-policy ]]; then + echo "ct-policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-policy + fi + - name: CT priority_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-priority_queue ]]; then + echo "ct-priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-priority_queue + fi + - name: CT priority_queue_recovery MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-priority_queue_recovery ]]; then + echo "ct-priority_queue_recovery already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-priority_queue_recovery \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-priority_queue_recovery + fi + - name: CT product_info MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-product_info ]]; then + echo "ct-product_info already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-product_info \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-product_info + fi + - name: CT proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT publisher_confirms_parallel MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-publisher_confirms_parallel ]]; then + echo "ct-publisher_confirms_parallel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-publisher_confirms_parallel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-publisher_confirms_parallel + fi + - name: CT queue_length_limits MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_length_limits ]]; then + echo "ct-queue_length_limits already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_length_limits \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_length_limits + fi + - name: CT queue_master_location MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_master_location ]]; then + echo "ct-queue_master_location already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_master_location \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_master_location + fi + - name: CT queue_parallel MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_parallel ]]; then + echo "ct-queue_parallel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_parallel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_parallel + fi + - name: CT queue_type MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_type ]]; then + echo "ct-queue_type already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_type \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_type + fi + - name: CT quorum_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-quorum_queue ]]; then + echo "ct-quorum_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-quorum_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-quorum_queue + fi + - name: CT quorum_queue_member_reconciliation MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-quorum_queue_member_reconciliation ]]; then + echo "ct-quorum_queue_member_reconciliation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-quorum_queue_member_reconciliation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-quorum_queue_member_reconciliation + fi + - name: CT rabbit_access_control MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_access_control ]]; then + echo "ct-rabbit_access_control already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_access_control \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_access_control + fi + - name: CT rabbit_confirms MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_confirms ]]; then + echo "ct-rabbit_confirms already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_confirms \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_confirms + fi + - name: CT rabbit_core_metrics_gc MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_core_metrics_gc ]]; then + echo "ct-rabbit_core_metrics_gc already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_core_metrics_gc \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_core_metrics_gc + fi + - name: CT rabbit_cuttlefish MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_cuttlefish ]]; then + echo "ct-rabbit_cuttlefish already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_cuttlefish \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_cuttlefish + fi + - name: CT rabbit_db_binding MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_binding ]]; then + echo "ct-rabbit_db_binding already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_binding \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_binding + fi + - name: CT rabbit_db_exchange MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_exchange ]]; then + echo "ct-rabbit_db_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_exchange + fi + - name: CT rabbit_db_maintenance MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_maintenance ]]; then + echo "ct-rabbit_db_maintenance already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_maintenance \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_maintenance + fi + - name: CT rabbit_db_msup MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_msup ]]; then + echo "ct-rabbit_db_msup already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_msup \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_msup + fi + - name: CT rabbit_db_policy MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_policy ]]; then + echo "ct-rabbit_db_policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_policy + fi + - name: CT rabbit_db_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_queue ]]; then + echo "ct-rabbit_db_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_queue + fi + - name: CT rabbit_db_topic_exchange MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_topic_exchange ]]; then + echo "ct-rabbit_db_topic_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_topic_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_topic_exchange + fi + - name: CT rabbit_direct_reply_to_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_direct_reply_to_prop ]]; then + echo "ct-rabbit_direct_reply_to_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_direct_reply_to_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_direct_reply_to_prop + fi + - name: CT rabbit_fifo MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo ]]; then + echo "ct-rabbit_fifo already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo + fi + - name: CT rabbit_fifo_dlx MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx ]]; then + echo "ct-rabbit_fifo_dlx already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_dlx \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx + fi + - name: CT rabbit_fifo_dlx_integration MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx_integration ]]; then + echo "ct-rabbit_fifo_dlx_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_dlx_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx_integration + fi + - name: CT rabbit_fifo_int MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_int ]]; then + echo "ct-rabbit_fifo_int already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_int \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_int + fi + - name: CT rabbit_fifo_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_prop ]]; then + echo "ct-rabbit_fifo_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_prop + fi + - name: CT rabbit_fifo_v0 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_v0 ]]; then + echo "ct-rabbit_fifo_v0 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_v0 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_v0 + fi + - name: CT rabbit_message_interceptor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_message_interceptor ]]; then + echo "ct-rabbit_message_interceptor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_message_interceptor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_message_interceptor + fi + - name: CT rabbit_stream_coordinator MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_coordinator ]]; then + echo "ct-rabbit_stream_coordinator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_coordinator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_coordinator + fi + - name: CT rabbit_stream_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_queue ]]; then + echo "ct-rabbit_stream_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_queue + fi + - name: CT rabbit_stream_sac_coordinator MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_sac_coordinator ]]; then + echo "ct-rabbit_stream_sac_coordinator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_sac_coordinator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_sac_coordinator + fi + - name: CT rabbitmq_4_0_deprecations MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_4_0_deprecations ]]; then + echo "ct-rabbitmq_4_0_deprecations already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmq_4_0_deprecations \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_4_0_deprecations + fi + - name: CT rabbitmq_queues_cli_integration MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_queues_cli_integration ]]; then + echo "ct-rabbitmq_queues_cli_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmq_queues_cli_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_queues_cli_integration + fi + - name: CT rabbitmqctl_integration MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmqctl_integration ]]; then + echo "ct-rabbitmqctl_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmqctl_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmqctl_integration + fi + - name: CT rabbitmqctl_shutdown MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmqctl_shutdown ]]; then + echo "ct-rabbitmqctl_shutdown already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmqctl_shutdown \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmqctl_shutdown + fi + - name: CT routing MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-routing ]]; then + echo "ct-routing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-routing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-routing + fi + - name: CT runtime_parameters MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-runtime_parameters ]]; then + echo "ct-runtime_parameters already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-runtime_parameters \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-runtime_parameters + fi + - name: CT signal_handling MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-signal_handling ]]; then + echo "ct-signal_handling already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-signal_handling \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-signal_handling + fi + - name: CT simple_ha MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-simple_ha ]]; then + echo "ct-simple_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-simple_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-simple_ha + fi + - name: CT single_active_consumer MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-single_active_consumer ]]; then + echo "ct-single_active_consumer already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-single_active_consumer \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-single_active_consumer + fi + - name: CT sync_detection MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-sync_detection ]]; then + echo "ct-sync_detection already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-sync_detection \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-sync_detection + fi + - name: CT term_to_binary_compat_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-term_to_binary_compat_prop ]]; then + echo "ct-term_to_binary_compat_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-term_to_binary_compat_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-term_to_binary_compat_prop + fi + - name: CT topic_permission MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-topic_permission ]]; then + echo "ct-topic_permission already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-topic_permission \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-topic_permission + fi + - name: CT transactions MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-transactions ]]; then + echo "ct-transactions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-transactions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-transactions + fi + - name: CT unicode MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unicode ]]; then + echo "ct-unicode already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unicode \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unicode + fi + - name: CT unit_access_control MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control ]]; then + echo "ct-unit_access_control already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control + fi + - name: CT unit_access_control_authn_authz_context_propagation MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control_authn_authz_context_propagation ]]; then + echo "ct-unit_access_control_authn_authz_context_propagation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control_authn_authz_context_propagation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control_authn_authz_context_propagation + fi + - name: CT unit_access_control_credential_validation MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control_credential_validation ]]; then + echo "ct-unit_access_control_credential_validation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control_credential_validation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control_credential_validation + fi + - name: CT unit_amqp091_content_framing MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_amqp091_content_framing ]]; then + echo "ct-unit_amqp091_content_framing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_amqp091_content_framing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_amqp091_content_framing + fi + - name: CT unit_amqp091_server_properties MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_amqp091_server_properties ]]; then + echo "ct-unit_amqp091_server_properties already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_amqp091_server_properties \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_amqp091_server_properties + fi + - name: CT unit_app_management MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_app_management ]]; then + echo "ct-unit_app_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_app_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_app_management + fi + - name: CT unit_classic_mirrored_queue_sync_throttling MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_sync_throttling ]]; then + echo "ct-unit_classic_mirrored_queue_sync_throttling already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_classic_mirrored_queue_sync_throttling \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_sync_throttling + fi + - name: CT unit_classic_mirrored_queue_throughput MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_throughput ]]; then + echo "ct-unit_classic_mirrored_queue_throughput already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_classic_mirrored_queue_throughput \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_throughput + fi + - name: CT unit_cluster_formation_locking_mocks MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_locking_mocks ]]; then + echo "ct-unit_cluster_formation_locking_mocks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_cluster_formation_locking_mocks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_locking_mocks + fi + - name: CT unit_cluster_formation_sort_nodes MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_sort_nodes ]]; then + echo "ct-unit_cluster_formation_sort_nodes already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_cluster_formation_sort_nodes \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_sort_nodes + fi + - name: CT unit_collections MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_collections ]]; then + echo "ct-unit_collections already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_collections \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_collections + fi + - name: CT unit_config_value_encryption MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_config_value_encryption ]]; then + echo "ct-unit_config_value_encryption already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_config_value_encryption \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_config_value_encryption + fi + - name: CT unit_connection_tracking MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_connection_tracking ]]; then + echo "ct-unit_connection_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_connection_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_connection_tracking + fi + - name: CT unit_credit_flow MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_credit_flow ]]; then + echo "ct-unit_credit_flow already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_credit_flow \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_credit_flow + fi + - name: CT unit_disk_monitor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_disk_monitor ]]; then + echo "ct-unit_disk_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_disk_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_disk_monitor + fi + - name: CT unit_file_handle_cache MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_file_handle_cache ]]; then + echo "ct-unit_file_handle_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_file_handle_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_file_handle_cache + fi + - name: CT unit_gen_server2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_gen_server2 ]]; then + echo "ct-unit_gen_server2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_gen_server2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_gen_server2 + fi + - name: CT unit_gm MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_gm ]]; then + echo "ct-unit_gm already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_gm \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_gm + fi + - name: CT unit_log_management MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_log_management ]]; then + echo "ct-unit_log_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_log_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_log_management + fi + - name: CT unit_operator_policy MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_operator_policy ]]; then + echo "ct-unit_operator_policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_operator_policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_operator_policy + fi + - name: CT unit_pg_local MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_pg_local ]]; then + echo "ct-unit_pg_local already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_pg_local \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_pg_local + fi + - name: CT unit_plugin_directories MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_plugin_directories ]]; then + echo "ct-unit_plugin_directories already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_plugin_directories \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_plugin_directories + fi + - name: CT unit_plugin_versioning MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_plugin_versioning ]]; then + echo "ct-unit_plugin_versioning already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_plugin_versioning \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_plugin_versioning + fi + - name: CT unit_policy_validators MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_policy_validators ]]; then + echo "ct-unit_policy_validators already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_policy_validators \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_policy_validators + fi + - name: CT unit_priority_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_priority_queue ]]; then + echo "ct-unit_priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_priority_queue + fi + - name: CT unit_queue_consumers MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_queue_consumers ]]; then + echo "ct-unit_queue_consumers already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_queue_consumers \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_queue_consumers + fi + - name: CT unit_quorum_queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_quorum_queue ]]; then + echo "ct-unit_quorum_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_quorum_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_quorum_queue + fi + - name: CT unit_stats_and_metrics MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_stats_and_metrics ]]; then + echo "ct-unit_stats_and_metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_stats_and_metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_stats_and_metrics + fi + - name: CT unit_supervisor2 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_supervisor2 ]]; then + echo "ct-unit_supervisor2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_supervisor2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_supervisor2 + fi + - name: CT unit_vm_memory_monitor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_vm_memory_monitor ]]; then + echo "ct-unit_vm_memory_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_vm_memory_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_vm_memory_monitor + fi + - name: CT upgrade_preparation MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-upgrade_preparation ]]; then + echo "ct-upgrade_preparation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-upgrade_preparation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-upgrade_preparation + fi + - name: CT vhost MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-vhost ]]; then + echo "ct-vhost already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-vhost \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-vhost + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbit-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbit/logs/* + test-rabbitmq_cli: + name: Test rabbitmq_cli + needs: + - xref + - test-rabbit + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 20 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: TEST MIXED + id: test + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/checks ]]; then + echo "checks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_cli \ + checks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/checks + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_cli-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_cli/logs/* + test-rabbitmq_amqp_client: + name: Test rabbitmq_amqp_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT management MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-management ]]; then + echo "ct-management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp_client \ + ct-management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-management + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_amqp_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_amqp_client/logs/* + test-rabbitmq_amqp1_0: + name: Test rabbitmq_amqp1_0 + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_amqp1_0-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_amqp1_0/logs/* + test-rabbitmq_auth_backend_cache: + name: Test rabbitmq_auth_backend_cache + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbit_auth_backend_cache MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_auth_backend_cache ]]; then + echo "ct-rabbit_auth_backend_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-rabbit_auth_backend_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_auth_backend_cache + fi + - name: CT rabbit_auth_cache MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_auth_cache ]]; then + echo "ct-rabbit_auth_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-rabbit_auth_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_auth_cache + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_cache-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_cache/logs/* + test-rabbitmq_auth_backend_http: + name: Test rabbitmq_auth_backend_http + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT auth MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-auth ]]; then + echo "ct-auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-auth + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_http-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_http/logs/* + test-rabbitmq_auth_backend_ldap: + name: Test rabbitmq_auth_backend_ldap + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_ldap-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_ldap/logs/* + test-rabbitmq_auth_backend_oauth2: + name: Test rabbitmq_auth_backend_oauth2 + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT add_signing_key_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-add_signing_key_command ]]; then + echo "ct-add_signing_key_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-add_signing_key_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-add_signing_key_command + fi + - name: CT add_uaa_key_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-add_uaa_key_command ]]; then + echo "ct-add_uaa_key_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-add_uaa_key_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-add_uaa_key_command + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT jwks MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-jwks ]]; then + echo "ct-jwks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-jwks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-jwks + fi + - name: CT rabbit_oauth2_config MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_oauth2_config ]]; then + echo "ct-rabbit_oauth2_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-rabbit_oauth2_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_oauth2_config + fi + - name: CT scope MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-scope ]]; then + echo "ct-scope already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-scope \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-scope + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT wildcard_match MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-wildcard_match ]]; then + echo "ct-wildcard_match already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-wildcard_match \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-wildcard_match + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_oauth2-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_oauth2/logs/* + test-rabbitmq_auth_mechanism_ssl: + name: Test rabbitmq_auth_mechanism_ssl + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_mechanism_ssl-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_mechanism_ssl/logs/* + test-rabbitmq_aws: + name: Test rabbitmq_aws + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_aws-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_aws/logs/* + test-rabbitmq_consistent_hash_exchange: + name: Test rabbitmq_consistent_hash_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_exchange_type_consistent_hash MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_exchange_type_consistent_hash ]]; then + echo "ct-rabbit_exchange_type_consistent_hash already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_consistent_hash_exchange \ + ct-rabbit_exchange_type_consistent_hash \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_exchange_type_consistent_hash + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_consistent_hash_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_consistent_hash_exchange/logs/* + test-rabbitmq_event_exchange: + name: Test rabbitmq_event_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_event_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_event_exchange/logs/* + test-rabbitmq_federation: + name: Test rabbitmq_federation + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT exchange MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exchange ]]; then + echo "ct-exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exchange + fi + - name: CT federation_status_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-federation_status_command ]]; then + echo "ct-federation_status_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-federation_status_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-federation_status_command + fi + - name: CT queue MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue ]]; then + echo "ct-queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue + fi + - name: CT rabbit_federation_status MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_federation_status ]]; then + echo "ct-rabbit_federation_status already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-rabbit_federation_status \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_federation_status + fi + - name: CT restart_federation_link_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-restart_federation_link_command ]]; then + echo "ct-restart_federation_link_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-restart_federation_link_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-restart_federation_link_command + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT unit_inbroker MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_inbroker ]]; then + echo "ct-unit_inbroker already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-unit_inbroker \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_inbroker + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_federation-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_federation/logs/* + test-rabbitmq_federation_management: + name: Test rabbitmq_federation_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT federation_mgmt MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-federation_mgmt ]]; then + echo "ct-federation_mgmt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation_management \ + ct-federation_mgmt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-federation_mgmt + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_federation_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_federation_management/logs/* + test-rabbitmq_jms_topic_exchange: + name: Test rabbitmq_jms_topic_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rjms_topic_selector MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rjms_topic_selector ]]; then + echo "ct-rjms_topic_selector already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-rjms_topic_selector \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rjms_topic_selector + fi + - name: CT rjms_topic_selector_unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rjms_topic_selector_unit ]]; then + echo "ct-rjms_topic_selector_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-rjms_topic_selector_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rjms_topic_selector_unit + fi + - name: CT sjx_evaluation MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-sjx_evaluation ]]; then + echo "ct-sjx_evaluation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-sjx_evaluation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-sjx_evaluation + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_jms_topic_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_jms_topic_exchange/logs/* + test-rabbitmq_management: + name: Test rabbitmq_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT cache MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cache ]]; then + echo "ct-cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cache + fi + - name: CT clustering MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering ]]; then + echo "ct-clustering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-clustering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering + fi + - name: CT clustering_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_prop ]]; then + echo "ct-clustering_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-clustering_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_prop + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT listener_config MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-listener_config ]]; then + echo "ct-listener_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-listener_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-listener_config + fi + - name: CT rabbit_mgmt_http MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http ]]; then + echo "ct-rabbit_mgmt_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http + fi + - name: CT rabbit_mgmt_http_health_checks MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http_health_checks ]]; then + echo "ct-rabbit_mgmt_http_health_checks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_http_health_checks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http_health_checks + fi + - name: CT rabbit_mgmt_only_http MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_only_http ]]; then + echo "ct-rabbit_mgmt_only_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_only_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_only_http + fi + - name: CT rabbit_mgmt_rabbitmqadmin MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_rabbitmqadmin ]]; then + echo "ct-rabbit_mgmt_rabbitmqadmin already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_rabbitmqadmin \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_rabbitmqadmin + fi + - name: CT rabbit_mgmt_stats MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_stats ]]; then + echo "ct-rabbit_mgmt_stats already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_stats \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_stats + fi + - name: CT rabbit_mgmt_test_db MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_db ]]; then + echo "ct-rabbit_mgmt_test_db already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_test_db \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_db + fi + - name: CT rabbit_mgmt_test_unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_unit ]]; then + echo "ct-rabbit_mgmt_test_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_test_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_unit + fi + - name: CT rabbit_mgmt_wm_auth MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_wm_auth ]]; then + echo "ct-rabbit_mgmt_wm_auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_wm_auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_wm_auth + fi + - name: CT stats MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-stats ]]; then + echo "ct-stats already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-stats \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-stats + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_management/logs/* + test-rabbitmq_management_agent: + name: Test rabbitmq_management_agent + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT exometer_slide MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exometer_slide ]]; then + echo "ct-exometer_slide already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-exometer_slide \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exometer_slide + fi + - name: CT metrics MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metrics ]]; then + echo "ct-metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metrics + fi + - name: CT rabbit_mgmt_gc MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_gc ]]; then + echo "ct-rabbit_mgmt_gc already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-rabbit_mgmt_gc \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_gc + fi + - name: CT rabbit_mgmt_slide MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_slide ]]; then + echo "ct-rabbit_mgmt_slide already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-rabbit_mgmt_slide \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_slide + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_management_agent-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_management_agent/logs/* + test-rabbitmq_mqtt: + name: Test rabbitmq_mqtt + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT auth MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-auth ]]; then + echo "ct-auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-auth + fi + - name: CT cluster MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster ]]; then + echo "ct-cluster already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-cluster \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster + fi + - name: CT command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config ]]; then + echo "ct-config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT ff MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-ff ]]; then + echo "ct-ff already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-ff \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-ff + fi + - name: CT java MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-java ]]; then + echo "ct-java already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-java \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-java + fi + - name: CT mc_mqtt MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mc_mqtt ]]; then + echo "ct-mc_mqtt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-mc_mqtt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mc_mqtt + fi + - name: CT mqtt_machine MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mqtt_machine ]]; then + echo "ct-mqtt_machine already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-mqtt_machine \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mqtt_machine + fi + - name: CT packet_prop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-packet_prop ]]; then + echo "ct-packet_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-packet_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-packet_prop + fi + - name: CT processor MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-processor ]]; then + echo "ct-processor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-processor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-processor + fi + - name: CT protocol_interop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-protocol_interop ]]; then + echo "ct-protocol_interop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-protocol_interop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-protocol_interop + fi + - name: CT proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT rabbit_mqtt_confirms MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mqtt_confirms ]]; then + echo "ct-rabbit_mqtt_confirms already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-rabbit_mqtt_confirms \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mqtt_confirms + fi + - name: CT reader MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-reader ]]; then + echo "ct-reader already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-reader \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-reader + fi + - name: CT retainer MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-retainer ]]; then + echo "ct-retainer already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-retainer \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-retainer + fi + - name: CT shared MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-shared ]]; then + echo "ct-shared already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-shared \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-shared + fi + - name: CT util MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-util ]]; then + echo "ct-util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-util + fi + - name: CT v5 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-v5 ]]; then + echo "ct-v5 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-v5 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-v5 + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_mqtt-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_mqtt/logs/* + test-rabbitmq_peer_discovery_aws: + name: Test rabbitmq_peer_discovery_aws + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT integration MIXED + if: false + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-integration ]]; then + echo "ct-integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-integration + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_aws-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_aws/logs/* + test-rabbitmq_peer_discovery_common: + name: Test rabbitmq_peer_discovery_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_common \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_common/logs/* + test-rabbitmq_peer_discovery_consul: + name: Test rabbitmq_peer_discovery_consul + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbitmq_peer_discovery_consul MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_consul ]]; then + echo "ct-rabbitmq_peer_discovery_consul already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + ct-rabbitmq_peer_discovery_consul \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_consul + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_consul-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_consul/logs/* + test-rabbitmq_peer_discovery_etcd: + name: Test rabbitmq_peer_discovery_etcd + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_etcd-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_etcd/logs/* + test-rabbitmq_peer_discovery_k8s: + name: Test rabbitmq_peer_discovery_k8s + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbitmq_peer_discovery_k8s MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_k8s ]]; then + echo "ct-rabbitmq_peer_discovery_k8s already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + ct-rabbitmq_peer_discovery_k8s \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_k8s + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_k8s-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_k8s/logs/* + test-rabbitmq_prelaunch: + name: Test rabbitmq_prelaunch + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_logger_std_h MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_logger_std_h ]]; then + echo "ct-rabbit_logger_std_h already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + ct-rabbit_logger_std_h \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_logger_std_h + fi + - name: CT rabbit_prelaunch_file MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_prelaunch_file ]]; then + echo "ct-rabbit_prelaunch_file already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + ct-rabbit_prelaunch_file \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_prelaunch_file + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_prelaunch-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_prelaunch/logs/* + test-rabbitmq_prometheus: + name: Test rabbitmq_prometheus + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT prometheus_rabbitmq_federation_collector MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-prometheus_rabbitmq_federation_collector ]]; then + echo "ct-prometheus_rabbitmq_federation_collector already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-prometheus_rabbitmq_federation_collector \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-prometheus_rabbitmq_federation_collector + fi + - name: CT rabbit_prometheus_http MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_prometheus_http ]]; then + echo "ct-rabbit_prometheus_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-rabbit_prometheus_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_prometheus_http + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_prometheus-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_prometheus/logs/* + test-rabbitmq_random_exchange: + name: Test rabbitmq_random_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_random_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_random_exchange/logs/* + test-rabbitmq_recent_history_exchange: + name: Test rabbitmq_recent_history_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_recent_history_exchange \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_recent_history_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_recent_history_exchange/logs/* + test-rabbitmq_sharding: + name: Test rabbitmq_sharding + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_hash_exchange MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_hash_exchange ]]; then + echo "ct-rabbit_hash_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + ct-rabbit_hash_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_hash_exchange + fi + - name: CT rabbit_sharding MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_sharding ]]; then + echo "ct-rabbit_sharding already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + ct-rabbit_sharding \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_sharding + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_sharding-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_sharding/logs/* + test-rabbitmq_shovel: + name: Test rabbitmq_shovel + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT amqp10 MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10 ]]; then + echo "ct-amqp10 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10 + fi + - name: CT amqp10_dynamic MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10_dynamic ]]; then + echo "ct-amqp10_dynamic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10_dynamic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10_dynamic + fi + - name: CT amqp10_shovel MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10_shovel ]]; then + echo "ct-amqp10_shovel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10_shovel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10_shovel + fi + - name: CT config MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config ]]; then + echo "ct-config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config + fi + - name: CT configuration MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-configuration ]]; then + echo "ct-configuration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-configuration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-configuration + fi + - name: CT delete_shovel_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-delete_shovel_command ]]; then + echo "ct-delete_shovel_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-delete_shovel_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-delete_shovel_command + fi + - name: CT dynamic MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic ]]; then + echo "ct-dynamic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-dynamic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic + fi + - name: CT parameters MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-parameters ]]; then + echo "ct-parameters already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-parameters \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-parameters + fi + - name: CT rolling_upgrade MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rolling_upgrade ]]; then + echo "ct-rolling_upgrade already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-rolling_upgrade \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rolling_upgrade + fi + - name: CT shovel_status_command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-shovel_status_command ]]; then + echo "ct-shovel_status_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-shovel_status_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-shovel_status_command + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_shovel-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_shovel/logs/* + test-rabbitmq_shovel_management: + name: Test rabbitmq_shovel_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT http MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-http ]]; then + echo "ct-http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-http + fi + - name: CT rabbit_shovel_mgmt MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt ]]; then + echo "ct-rabbit_shovel_mgmt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-rabbit_shovel_mgmt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt + fi + - name: CT rabbit_shovel_mgmt_util MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt_util ]]; then + echo "ct-rabbit_shovel_mgmt_util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-rabbit_shovel_mgmt_util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt_util + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_shovel_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_shovel_management/logs/* + test-rabbitmq_stomp: + name: Test rabbitmq_stomp + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT connections MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-connections ]]; then + echo "ct-connections already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-connections \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-connections + fi + - name: CT frame MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-frame ]]; then + echo "ct-frame already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-frame \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-frame + fi + - name: CT proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT python MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-python ]]; then + echo "ct-python already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-python \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-python + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT topic MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-topic ]]; then + echo "ct-topic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-topic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-topic + fi + - name: CT util MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-util ]]; then + echo "ct-util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-util + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stomp-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stomp/logs/* + test-rabbitmq_stream: + name: Test rabbitmq_stream + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT commands MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-commands ]]; then + echo "ct-commands already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-commands \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-commands + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT protocol_interop MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-protocol_interop ]]; then + echo "ct-protocol_interop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-protocol_interop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-protocol_interop + fi + - name: CT rabbit_stream MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream ]]; then + echo "ct-rabbit_stream already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream + fi + - name: CT rabbit_stream_manager MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_manager ]]; then + echo "ct-rabbit_stream_manager already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_manager \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_manager + fi + - name: CT rabbit_stream_reader MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_reader ]]; then + echo "ct-rabbit_stream_reader already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_reader \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_reader + fi + - name: CT rabbit_stream_utils MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_utils ]]; then + echo "ct-rabbit_stream_utils already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_utils \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_utils + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream/logs/* + test-rabbitmq_stream_management: + name: Test rabbitmq_stream_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT http MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-http ]]; then + echo "ct-http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_management \ + ct-http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-http + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream_management/logs/* + test-rabbitmq_top: + name: Test rabbitmq_top + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_top-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_top/logs/* + test-rabbitmq_tracing: + name: Test rabbitmq_tracing + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_tracing MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_tracing ]]; then + echo "ct-rabbit_tracing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_tracing \ + ct-rabbit_tracing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_tracing + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_tracing-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_tracing/logs/* + test-rabbitmq_trust_store: + name: Test rabbitmq_trust_store + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_trust_store-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_trust_store/logs/* + test-rabbitmq_web_dispatch: + name: Test rabbitmq_web_dispatch + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT rabbit_web_dispatch MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch ]]; then + echo "ct-rabbit_web_dispatch already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + ct-rabbit_web_dispatch \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch + fi + - name: CT rabbit_web_dispatch_unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch_unit ]]; then + echo "ct-rabbit_web_dispatch_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + ct-rabbit_web_dispatch_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch_unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_dispatch-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_dispatch/logs/* + test-rabbitmq_web_mqtt: + name: Test rabbitmq_web_mqtt + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT command MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT system MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_mqtt-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_mqtt/logs/* + test-rabbitmq_web_mqtt_examples: + name: Test rabbitmq_web_mqtt_examples + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_mqtt_examples-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_mqtt_examples/logs/* + test-rabbitmq_web_stomp: + name: Test rabbitmq_web_stomp + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: CT amqp_stomp MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_stomp ]]; then + echo "ct-amqp_stomp already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-amqp_stomp \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_stomp + fi + - name: CT config_schema MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT cowboy_websocket MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cowboy_websocket ]]; then + echo "ct-cowboy_websocket already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-cowboy_websocket \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cowboy_websocket + fi + - name: CT proxy_protocol MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT raw_websocket MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-raw_websocket ]]; then + echo "ct-raw_websocket already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-raw_websocket \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-raw_websocket + fi + - name: CT unit MIXED + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + env: + SECONDARY_UMBRELLA: ${{ github.workspace }}/${{ env.MIXED_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_stomp-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_stomp/logs/* + test-rabbitmq_web_stomp_examples: + name: Test rabbitmq_web_stomp_examples + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: RESTORE BUILT MIXED VERSION REPO + uses: actions/cache@v4 + with: + path: ${{ env.MIXED_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }}-mixed + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-v3.13.x-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_stomp_examples-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-mixed + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_stomp_examples/logs/* + summary-test-make: + if: always() + needs: + - xref + - test-rabbit + - test-rabbitmq_cli + - test-amqp10_client + - test-amqp10_common + - test-amqp_client + - test-oauth2_client + - test-rabbit_common + - test-rabbitmq_ct_client_helpers + - test-rabbitmq_ct_helpers + - test-rabbitmq_stream_common + - test-trust_store_http + - test-rabbitmq_amqp_client + - test-rabbitmq_amqp1_0 + - test-rabbitmq_auth_backend_cache + - test-rabbitmq_auth_backend_http + - test-rabbitmq_auth_backend_ldap + - test-rabbitmq_auth_backend_oauth2 + - test-rabbitmq_auth_mechanism_ssl + - test-rabbitmq_aws + - test-rabbitmq_consistent_hash_exchange + - test-rabbitmq_event_exchange + - test-rabbitmq_federation + - test-rabbitmq_federation_management + - test-rabbitmq_jms_topic_exchange + - test-rabbitmq_management + - test-rabbitmq_management_agent + - test-rabbitmq_mqtt + - test-rabbitmq_peer_discovery_aws + - test-rabbitmq_peer_discovery_common + - test-rabbitmq_peer_discovery_consul + - test-rabbitmq_peer_discovery_etcd + - test-rabbitmq_peer_discovery_k8s + - test-rabbitmq_prelaunch + - test-rabbitmq_prometheus + - test-rabbitmq_random_exchange + - test-rabbitmq_recent_history_exchange + - test-rabbitmq_sharding + - test-rabbitmq_shovel + - test-rabbitmq_shovel_management + - test-rabbitmq_stomp + - test-rabbitmq_stream + - test-rabbitmq_stream_management + - test-rabbitmq_top + - test-rabbitmq_tracing + - test-rabbitmq_trust_store + - test-rabbitmq_web_dispatch + - test-rabbitmq_web_mqtt + - test-rabbitmq_web_mqtt_examples + - test-rabbitmq_web_stomp + - test-rabbitmq_web_stomp_examples + runs-on: ubuntu-latest + steps: + - name: SUMMARY + run: | + cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' + ${{ toJson(needs) }} + EOF diff --git a/.github/workflows/test-make.yaml b/.github/workflows/test-make.yaml new file mode 100644 index 000000000000..50a7c0bce4a6 --- /dev/null +++ b/.github/workflows/test-make.yaml @@ -0,0 +1,7551 @@ +name: Test (make) +on: + push: + branches: + - main + - v3.13.x + - v3.12.x + - v3.11.x + pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +env: + PRIMARY_VERSION_PATH: rabbitmq-server + MIXED_VERSION_PATH: secondary-umbrella + CACHE_PATH: /home/runner/test-result-cache +jobs: + xref: + runs-on: ubuntu-latest + outputs: + hash: ${{ steps.hash.outputs.hash }} + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + - name: SETUP ERLANG/ELIXIR + if: steps.check.outputs.passed != 'true' + uses: erlef/setup-beam@v1 + with: + otp-version: 26.2 + elixir-version: 1.15 + - name: ENSURE WORKFLOWS ARE UP TO DATE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + mkdir local-bin/ + curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash + + make actions-workflows YTT=$PWD/local-bin/ytt + git diff --exit-code + - name: COMPUTE REPO HASH + id: hash + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + echo "hash=${{ hashFiles('**', '!WORKSPACE', '!.github/**', '!**.bazel', '!**.bzl', '!**/BUILD.*') }}" | tee -a $GITHUB_OUTPUT + - name: CACHE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }} + - name: BUILD + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + make + - name: XREF + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + make xref + - name: CACHE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ steps.hash.outputs.hash }} + test-amqp10_client: + name: Test amqp10_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT msg + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-msg ]]; then + echo "ct-msg already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + ct-msg \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-msg + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp10_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp10_client/logs/* + test-amqp10_common: + name: Test amqp10_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT binary_generator + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-binary_generator ]]; then + echo "ct-binary_generator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-binary_generator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-binary_generator + fi + - name: CT binary_parser + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-binary_parser ]]; then + echo "ct-binary_parser already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-binary_parser \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-binary_parser + fi + - name: CT prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-prop ]]; then + echo "ct-prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-prop + fi + - name: CT serial_number + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-serial_number ]]; then + echo "ct-serial_number already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp10_common \ + ct-serial_number \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-serial_number + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp10_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp10_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp10_common/logs/* + test-amqp_client: + name: Test amqp_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/amqp_client \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-amqp_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/amqp_client/logs/* + test-oauth2_client: + name: Test oauth2_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/oauth2_client \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-oauth2_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-oauth2_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/oauth2_client/logs/* + test-rabbit_common: + name: Test rabbit_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_env + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_env ]]; then + echo "ct-rabbit_env already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-rabbit_env \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_env + fi + - name: CT supervisor2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-supervisor2 ]]; then + echo "ct-supervisor2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-supervisor2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-supervisor2 + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT unit_password_hashing + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_password_hashing ]]; then + echo "ct-unit_password_hashing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit_password_hashing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_password_hashing + fi + - name: CT unit_priority_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_priority_queue ]]; then + echo "ct-unit_priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-unit_priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_priority_queue + fi + - name: CT worker_pool + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-worker_pool ]]; then + echo "ct-worker_pool already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit_common \ + ct-worker_pool \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-worker_pool + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbit_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbit_common/logs/* + test-rabbitmq_ct_client_helpers: + name: Test rabbitmq_ct_client_helpers + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_client_helpers \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_client_helpers \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_client_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_ct_client_helpers-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_ct_client_helpers/logs/* + test-rabbitmq_ct_helpers: + name: Test rabbitmq_ct_helpers + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_helpers \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: true + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_helpers \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT terraform + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-terraform ]]; then + echo "ct-terraform already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_ct_helpers \ + ct-terraform \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-terraform + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_ct_helpers-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_ct_helpers-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_ct_helpers/logs/* + test-rabbitmq_stream_common: + name: Test rabbitmq_stream_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_common \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_common \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_stream_core + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_core ]]; then + echo "ct-rabbit_stream_core already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_common \ + ct-rabbit_stream_core \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_core + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream_common/logs/* + test-trust_store_http: + name: Test trust_store_http + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/trust_store_http \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: true + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/trust_store_http \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-trust_store_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-trust_store_http-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/trust_store_http/logs/* + test-rabbit: + name: Test rabbit + needs: + - xref + - test-amqp10_client + - test-amqp10_common + - test-amqp_client + - test-oauth2_client + - test-rabbit_common + - test-rabbitmq_ct_client_helpers + - test-rabbitmq_ct_helpers + - test-rabbitmq_stream_common + - test-trust_store_http + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: INSTALL DOTNET + run: | + sudo apt-get update && \ + sudo apt-get install -y dotnet-sdk-6.0 + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT amqp_address + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_address ]]; then + echo "ct-amqp_address already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_address \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_address + fi + - name: CT amqp_auth + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_auth ]]; then + echo "ct-amqp_auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_auth + fi + - name: CT amqp_client + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_client ]]; then + echo "ct-amqp_client already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_client \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_client + fi + - name: CT amqp_credit_api_v2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_credit_api_v2 ]]; then + echo "ct-amqp_credit_api_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_credit_api_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_credit_api_v2 + fi + - name: CT amqp_proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_proxy_protocol ]]; then + echo "ct-amqp_proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_proxy_protocol + fi + - name: CT amqp_system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_system ]]; then + echo "ct-amqp_system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqp_system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_system + fi + - name: CT amqqueue_backward_compatibility + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqqueue_backward_compatibility ]]; then + echo "ct-amqqueue_backward_compatibility already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-amqqueue_backward_compatibility \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqqueue_backward_compatibility + fi + - name: CT backing_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-backing_queue ]]; then + echo "ct-backing_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-backing_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-backing_queue + fi + - name: CT bindings + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-bindings ]]; then + echo "ct-bindings already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-bindings \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-bindings + fi + - name: CT channel_interceptor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-channel_interceptor ]]; then + echo "ct-channel_interceptor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-channel_interceptor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-channel_interceptor + fi + - name: CT channel_operation_timeout + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-channel_operation_timeout ]]; then + echo "ct-channel_operation_timeout already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-channel_operation_timeout \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-channel_operation_timeout + fi + - name: CT classic_queue_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-classic_queue_prop ]]; then + echo "ct-classic_queue_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-classic_queue_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-classic_queue_prop + fi + - name: CT cli_forget_cluster_node + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cli_forget_cluster_node ]]; then + echo "ct-cli_forget_cluster_node already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cli_forget_cluster_node \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cli_forget_cluster_node + fi + - name: CT cluster + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster ]]; then + echo "ct-cluster already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cluster \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster + fi + - name: CT cluster_minority + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster_minority ]]; then + echo "ct-cluster_minority already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-cluster_minority \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster_minority + fi + - name: CT clustering_management + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_management ]]; then + echo "ct-clustering_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-clustering_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_management + fi + - name: CT clustering_recovery + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_recovery ]]; then + echo "ct-clustering_recovery already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-clustering_recovery \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_recovery + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT confirms_rejects + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-confirms_rejects ]]; then + echo "ct-confirms_rejects already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-confirms_rejects \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-confirms_rejects + fi + - name: CT consumer_timeout + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-consumer_timeout ]]; then + echo "ct-consumer_timeout already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-consumer_timeout \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-consumer_timeout + fi + - name: CT crashing_queues + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-crashing_queues ]]; then + echo "ct-crashing_queues already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-crashing_queues \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-crashing_queues + fi + - name: CT dead_lettering + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dead_lettering ]]; then + echo "ct-dead_lettering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dead_lettering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dead_lettering + fi + - name: CT definition_import + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-definition_import ]]; then + echo "ct-definition_import already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-definition_import \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-definition_import + fi + - name: CT deprecated_features + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-deprecated_features ]]; then + echo "ct-deprecated_features already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-deprecated_features \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-deprecated_features + fi + - name: CT direct_exchange_routing_v2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-direct_exchange_routing_v2 ]]; then + echo "ct-direct_exchange_routing_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-direct_exchange_routing_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-direct_exchange_routing_v2 + fi + - name: CT disconnect_detected_during_alarm + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-disconnect_detected_during_alarm ]]; then + echo "ct-disconnect_detected_during_alarm already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-disconnect_detected_during_alarm \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-disconnect_detected_during_alarm + fi + - name: CT disk_monitor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-disk_monitor ]]; then + echo "ct-disk_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-disk_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-disk_monitor + fi + - name: CT dynamic_ha + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic_ha ]]; then + echo "ct-dynamic_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dynamic_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic_ha + fi + - name: CT dynamic_qq + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic_qq ]]; then + echo "ct-dynamic_qq already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-dynamic_qq \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic_qq + fi + - name: CT eager_sync + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-eager_sync ]]; then + echo "ct-eager_sync already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-eager_sync \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-eager_sync + fi + - name: CT exchanges + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exchanges ]]; then + echo "ct-exchanges already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-exchanges \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exchanges + fi + - name: CT feature_flags + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags ]]; then + echo "ct-feature_flags already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags + fi + - name: CT feature_flags_v2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags_v2 ]]; then + echo "ct-feature_flags_v2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags_v2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags_v2 + fi + - name: CT feature_flags_with_unpriveleged_user + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-feature_flags_with_unpriveleged_user ]]; then + echo "ct-feature_flags_with_unpriveleged_user already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-feature_flags_with_unpriveleged_user \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-feature_flags_with_unpriveleged_user + fi + - name: CT list_consumers_sanity_check + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-list_consumers_sanity_check ]]; then + echo "ct-list_consumers_sanity_check already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-list_consumers_sanity_check \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-list_consumers_sanity_check + fi + - name: CT list_queues_online_and_offline + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-list_queues_online_and_offline ]]; then + echo "ct-list_queues_online_and_offline already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-list_queues_online_and_offline \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-list_queues_online_and_offline + fi + - name: CT logging + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-logging ]]; then + echo "ct-logging already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-logging \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-logging + fi + - name: CT lqueue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-lqueue ]]; then + echo "ct-lqueue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-lqueue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-lqueue + fi + - name: CT maintenance_mode + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-maintenance_mode ]]; then + echo "ct-maintenance_mode already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-maintenance_mode \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-maintenance_mode + fi + - name: CT many_node_ha + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-many_node_ha ]]; then + echo "ct-many_node_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-many_node_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-many_node_ha + fi + - name: CT mc_unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mc_unit ]]; then + echo "ct-mc_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-mc_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mc_unit + fi + - name: CT message_size_limit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-message_size_limit ]]; then + echo "ct-message_size_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-message_size_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-message_size_limit + fi + - name: CT metadata_store_clustering + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_clustering ]]; then + echo "ct-metadata_store_clustering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_clustering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_clustering + fi + - name: CT metadata_store_migration + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_migration ]]; then + echo "ct-metadata_store_migration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_migration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_migration + fi + - name: CT metadata_store_phase1 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metadata_store_phase1 ]]; then + echo "ct-metadata_store_phase1 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metadata_store_phase1 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metadata_store_phase1 + fi + - name: CT metrics + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metrics ]]; then + echo "ct-metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metrics + fi + - name: CT mirrored_supervisor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mirrored_supervisor ]]; then + echo "ct-mirrored_supervisor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-mirrored_supervisor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mirrored_supervisor + fi + - name: CT msg_store + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-msg_store ]]; then + echo "ct-msg_store already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-msg_store \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-msg_store + fi + - name: CT peer_discovery_classic_config + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_classic_config ]]; then + echo "ct-peer_discovery_classic_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_classic_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_classic_config + fi + - name: CT peer_discovery_dns + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_dns ]]; then + echo "ct-peer_discovery_dns already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_dns \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_dns + fi + - name: CT peer_discovery_tmp_hidden_node + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-peer_discovery_tmp_hidden_node ]]; then + echo "ct-peer_discovery_tmp_hidden_node already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-peer_discovery_tmp_hidden_node \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-peer_discovery_tmp_hidden_node + fi + - name: CT per_node_limit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_node_limit ]]; then + echo "ct-per_node_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_node_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_node_limit + fi + - name: CT per_user_connection_channel_limit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit ]]; then + echo "ct-per_user_connection_channel_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit + fi + - name: CT per_user_connection_channel_limit_partitions + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit_partitions ]]; then + echo "ct-per_user_connection_channel_limit_partitions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_limit_partitions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_limit_partitions + fi + - name: CT per_user_connection_channel_tracking + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_tracking ]]; then + echo "ct-per_user_connection_channel_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_channel_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_channel_tracking + fi + - name: CT per_user_connection_tracking + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_user_connection_tracking ]]; then + echo "ct-per_user_connection_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_user_connection_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_user_connection_tracking + fi + - name: CT per_vhost_connection_limit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit ]]; then + echo "ct-per_vhost_connection_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_connection_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit + fi + - name: CT per_vhost_connection_limit_partitions + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit_partitions ]]; then + echo "ct-per_vhost_connection_limit_partitions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_connection_limit_partitions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_connection_limit_partitions + fi + - name: CT per_vhost_msg_store + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_msg_store ]]; then + echo "ct-per_vhost_msg_store already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_msg_store \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_msg_store + fi + - name: CT per_vhost_queue_limit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-per_vhost_queue_limit ]]; then + echo "ct-per_vhost_queue_limit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-per_vhost_queue_limit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-per_vhost_queue_limit + fi + - name: CT policy + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-policy ]]; then + echo "ct-policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-policy + fi + - name: CT priority_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-priority_queue ]]; then + echo "ct-priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-priority_queue + fi + - name: CT priority_queue_recovery + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-priority_queue_recovery ]]; then + echo "ct-priority_queue_recovery already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-priority_queue_recovery \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-priority_queue_recovery + fi + - name: CT product_info + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-product_info ]]; then + echo "ct-product_info already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-product_info \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-product_info + fi + - name: CT proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT publisher_confirms_parallel + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-publisher_confirms_parallel ]]; then + echo "ct-publisher_confirms_parallel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-publisher_confirms_parallel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-publisher_confirms_parallel + fi + - name: CT queue_length_limits + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_length_limits ]]; then + echo "ct-queue_length_limits already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_length_limits \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_length_limits + fi + - name: CT queue_master_location + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_master_location ]]; then + echo "ct-queue_master_location already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_master_location \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_master_location + fi + - name: CT queue_parallel + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_parallel ]]; then + echo "ct-queue_parallel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_parallel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_parallel + fi + - name: CT queue_type + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue_type ]]; then + echo "ct-queue_type already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-queue_type \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue_type + fi + - name: CT quorum_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-quorum_queue ]]; then + echo "ct-quorum_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-quorum_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-quorum_queue + fi + - name: CT quorum_queue_member_reconciliation + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-quorum_queue_member_reconciliation ]]; then + echo "ct-quorum_queue_member_reconciliation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-quorum_queue_member_reconciliation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-quorum_queue_member_reconciliation + fi + - name: CT rabbit_access_control + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_access_control ]]; then + echo "ct-rabbit_access_control already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_access_control \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_access_control + fi + - name: CT rabbit_confirms + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_confirms ]]; then + echo "ct-rabbit_confirms already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_confirms \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_confirms + fi + - name: CT rabbit_core_metrics_gc + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_core_metrics_gc ]]; then + echo "ct-rabbit_core_metrics_gc already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_core_metrics_gc \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_core_metrics_gc + fi + - name: CT rabbit_cuttlefish + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_cuttlefish ]]; then + echo "ct-rabbit_cuttlefish already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_cuttlefish \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_cuttlefish + fi + - name: CT rabbit_db_binding + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_binding ]]; then + echo "ct-rabbit_db_binding already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_binding \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_binding + fi + - name: CT rabbit_db_exchange + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_exchange ]]; then + echo "ct-rabbit_db_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_exchange + fi + - name: CT rabbit_db_maintenance + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_maintenance ]]; then + echo "ct-rabbit_db_maintenance already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_maintenance \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_maintenance + fi + - name: CT rabbit_db_msup + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_msup ]]; then + echo "ct-rabbit_db_msup already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_msup \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_msup + fi + - name: CT rabbit_db_policy + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_policy ]]; then + echo "ct-rabbit_db_policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_policy + fi + - name: CT rabbit_db_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_queue ]]; then + echo "ct-rabbit_db_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_queue + fi + - name: CT rabbit_db_topic_exchange + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_db_topic_exchange ]]; then + echo "ct-rabbit_db_topic_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_db_topic_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_db_topic_exchange + fi + - name: CT rabbit_direct_reply_to_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_direct_reply_to_prop ]]; then + echo "ct-rabbit_direct_reply_to_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_direct_reply_to_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_direct_reply_to_prop + fi + - name: CT rabbit_fifo + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo ]]; then + echo "ct-rabbit_fifo already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo + fi + - name: CT rabbit_fifo_dlx + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx ]]; then + echo "ct-rabbit_fifo_dlx already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_dlx \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx + fi + - name: CT rabbit_fifo_dlx_integration + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx_integration ]]; then + echo "ct-rabbit_fifo_dlx_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_dlx_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_dlx_integration + fi + - name: CT rabbit_fifo_int + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_int ]]; then + echo "ct-rabbit_fifo_int already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_int \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_int + fi + - name: CT rabbit_fifo_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_prop ]]; then + echo "ct-rabbit_fifo_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_prop + fi + - name: CT rabbit_fifo_v0 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_fifo_v0 ]]; then + echo "ct-rabbit_fifo_v0 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_fifo_v0 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_fifo_v0 + fi + - name: CT rabbit_message_interceptor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_message_interceptor ]]; then + echo "ct-rabbit_message_interceptor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_message_interceptor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_message_interceptor + fi + - name: CT rabbit_stream_coordinator + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_coordinator ]]; then + echo "ct-rabbit_stream_coordinator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_coordinator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_coordinator + fi + - name: CT rabbit_stream_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_queue ]]; then + echo "ct-rabbit_stream_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_queue + fi + - name: CT rabbit_stream_sac_coordinator + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_sac_coordinator ]]; then + echo "ct-rabbit_stream_sac_coordinator already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbit_stream_sac_coordinator \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_sac_coordinator + fi + - name: CT rabbitmq_4_0_deprecations + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_4_0_deprecations ]]; then + echo "ct-rabbitmq_4_0_deprecations already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmq_4_0_deprecations \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_4_0_deprecations + fi + - name: CT rabbitmq_queues_cli_integration + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_queues_cli_integration ]]; then + echo "ct-rabbitmq_queues_cli_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmq_queues_cli_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_queues_cli_integration + fi + - name: CT rabbitmqctl_integration + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmqctl_integration ]]; then + echo "ct-rabbitmqctl_integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmqctl_integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmqctl_integration + fi + - name: CT rabbitmqctl_shutdown + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmqctl_shutdown ]]; then + echo "ct-rabbitmqctl_shutdown already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-rabbitmqctl_shutdown \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmqctl_shutdown + fi + - name: CT routing + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-routing ]]; then + echo "ct-routing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-routing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-routing + fi + - name: CT runtime_parameters + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-runtime_parameters ]]; then + echo "ct-runtime_parameters already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-runtime_parameters \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-runtime_parameters + fi + - name: CT signal_handling + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-signal_handling ]]; then + echo "ct-signal_handling already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-signal_handling \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-signal_handling + fi + - name: CT simple_ha + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-simple_ha ]]; then + echo "ct-simple_ha already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-simple_ha \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-simple_ha + fi + - name: CT single_active_consumer + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-single_active_consumer ]]; then + echo "ct-single_active_consumer already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-single_active_consumer \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-single_active_consumer + fi + - name: CT sync_detection + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-sync_detection ]]; then + echo "ct-sync_detection already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-sync_detection \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-sync_detection + fi + - name: CT term_to_binary_compat_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-term_to_binary_compat_prop ]]; then + echo "ct-term_to_binary_compat_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-term_to_binary_compat_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-term_to_binary_compat_prop + fi + - name: CT topic_permission + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-topic_permission ]]; then + echo "ct-topic_permission already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-topic_permission \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-topic_permission + fi + - name: CT transactions + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-transactions ]]; then + echo "ct-transactions already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-transactions \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-transactions + fi + - name: CT unicode + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unicode ]]; then + echo "ct-unicode already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unicode \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unicode + fi + - name: CT unit_access_control + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control ]]; then + echo "ct-unit_access_control already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control + fi + - name: CT unit_access_control_authn_authz_context_propagation + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control_authn_authz_context_propagation ]]; then + echo "ct-unit_access_control_authn_authz_context_propagation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control_authn_authz_context_propagation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control_authn_authz_context_propagation + fi + - name: CT unit_access_control_credential_validation + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_access_control_credential_validation ]]; then + echo "ct-unit_access_control_credential_validation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_access_control_credential_validation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_access_control_credential_validation + fi + - name: CT unit_amqp091_content_framing + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_amqp091_content_framing ]]; then + echo "ct-unit_amqp091_content_framing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_amqp091_content_framing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_amqp091_content_framing + fi + - name: CT unit_amqp091_server_properties + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_amqp091_server_properties ]]; then + echo "ct-unit_amqp091_server_properties already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_amqp091_server_properties \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_amqp091_server_properties + fi + - name: CT unit_app_management + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_app_management ]]; then + echo "ct-unit_app_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_app_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_app_management + fi + - name: CT unit_classic_mirrored_queue_sync_throttling + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_sync_throttling ]]; then + echo "ct-unit_classic_mirrored_queue_sync_throttling already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_classic_mirrored_queue_sync_throttling \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_sync_throttling + fi + - name: CT unit_classic_mirrored_queue_throughput + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_throughput ]]; then + echo "ct-unit_classic_mirrored_queue_throughput already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_classic_mirrored_queue_throughput \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_classic_mirrored_queue_throughput + fi + - name: CT unit_cluster_formation_locking_mocks + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_locking_mocks ]]; then + echo "ct-unit_cluster_formation_locking_mocks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_cluster_formation_locking_mocks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_locking_mocks + fi + - name: CT unit_cluster_formation_sort_nodes + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_sort_nodes ]]; then + echo "ct-unit_cluster_formation_sort_nodes already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_cluster_formation_sort_nodes \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_cluster_formation_sort_nodes + fi + - name: CT unit_collections + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_collections ]]; then + echo "ct-unit_collections already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_collections \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_collections + fi + - name: CT unit_config_value_encryption + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_config_value_encryption ]]; then + echo "ct-unit_config_value_encryption already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_config_value_encryption \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_config_value_encryption + fi + - name: CT unit_connection_tracking + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_connection_tracking ]]; then + echo "ct-unit_connection_tracking already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_connection_tracking \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_connection_tracking + fi + - name: CT unit_credit_flow + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_credit_flow ]]; then + echo "ct-unit_credit_flow already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_credit_flow \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_credit_flow + fi + - name: CT unit_disk_monitor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_disk_monitor ]]; then + echo "ct-unit_disk_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_disk_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_disk_monitor + fi + - name: CT unit_file_handle_cache + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_file_handle_cache ]]; then + echo "ct-unit_file_handle_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_file_handle_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_file_handle_cache + fi + - name: CT unit_gen_server2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_gen_server2 ]]; then + echo "ct-unit_gen_server2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_gen_server2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_gen_server2 + fi + - name: CT unit_gm + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_gm ]]; then + echo "ct-unit_gm already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_gm \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_gm + fi + - name: CT unit_log_management + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_log_management ]]; then + echo "ct-unit_log_management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_log_management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_log_management + fi + - name: CT unit_operator_policy + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_operator_policy ]]; then + echo "ct-unit_operator_policy already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_operator_policy \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_operator_policy + fi + - name: CT unit_pg_local + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_pg_local ]]; then + echo "ct-unit_pg_local already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_pg_local \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_pg_local + fi + - name: CT unit_plugin_directories + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_plugin_directories ]]; then + echo "ct-unit_plugin_directories already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_plugin_directories \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_plugin_directories + fi + - name: CT unit_plugin_versioning + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_plugin_versioning ]]; then + echo "ct-unit_plugin_versioning already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_plugin_versioning \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_plugin_versioning + fi + - name: CT unit_policy_validators + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_policy_validators ]]; then + echo "ct-unit_policy_validators already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_policy_validators \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_policy_validators + fi + - name: CT unit_priority_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_priority_queue ]]; then + echo "ct-unit_priority_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_priority_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_priority_queue + fi + - name: CT unit_queue_consumers + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_queue_consumers ]]; then + echo "ct-unit_queue_consumers already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_queue_consumers \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_queue_consumers + fi + - name: CT unit_quorum_queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_quorum_queue ]]; then + echo "ct-unit_quorum_queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_quorum_queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_quorum_queue + fi + - name: CT unit_stats_and_metrics + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_stats_and_metrics ]]; then + echo "ct-unit_stats_and_metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_stats_and_metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_stats_and_metrics + fi + - name: CT unit_supervisor2 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_supervisor2 ]]; then + echo "ct-unit_supervisor2 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_supervisor2 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_supervisor2 + fi + - name: CT unit_vm_memory_monitor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_vm_memory_monitor ]]; then + echo "ct-unit_vm_memory_monitor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-unit_vm_memory_monitor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_vm_memory_monitor + fi + - name: CT upgrade_preparation + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-upgrade_preparation ]]; then + echo "ct-upgrade_preparation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-upgrade_preparation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-upgrade_preparation + fi + - name: CT vhost + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-vhost ]]; then + echo "ct-vhost already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbit \ + ct-vhost \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-vhost + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbit-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbit-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbit/logs/* + test-rabbitmq_cli: + name: Test rabbitmq_cli + needs: + - xref + - test-rabbit + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 20 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: TEST + id: test + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/checks ]]; then + echo "checks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_cli \ + checks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/checks + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_cli-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_cli-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_cli/logs/* + test-rabbitmq_amqp_client: + name: Test rabbitmq_amqp_client + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp_client \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp_client \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT management + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-management ]]; then + echo "ct-management already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp_client \ + ct-management \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-management + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp_client-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_amqp_client-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_amqp_client/logs/* + test-rabbitmq_amqp1_0: + name: Test rabbitmq_amqp1_0 + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp1_0 \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_amqp1_0 \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_amqp1_0-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_amqp1_0-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_amqp1_0/logs/* + test-rabbitmq_auth_backend_cache: + name: Test rabbitmq_auth_backend_cache + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbit_auth_backend_cache + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_auth_backend_cache ]]; then + echo "ct-rabbit_auth_backend_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-rabbit_auth_backend_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_auth_backend_cache + fi + - name: CT rabbit_auth_cache + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_auth_cache ]]; then + echo "ct-rabbit_auth_cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_cache \ + ct-rabbit_auth_cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_auth_cache + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_cache-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_cache-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_cache/logs/* + test-rabbitmq_auth_backend_http: + name: Test rabbitmq_auth_backend_http + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT auth + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-auth ]]; then + echo "ct-auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-auth + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_http \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_http-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_http-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_http/logs/* + test-rabbitmq_auth_backend_ldap: + name: Test rabbitmq_auth_backend_ldap + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_ldap \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_ldap-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_ldap-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_ldap/logs/* + test-rabbitmq_auth_backend_oauth2: + name: Test rabbitmq_auth_backend_oauth2 + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT add_signing_key_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-add_signing_key_command ]]; then + echo "ct-add_signing_key_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-add_signing_key_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-add_signing_key_command + fi + - name: CT add_uaa_key_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-add_uaa_key_command ]]; then + echo "ct-add_uaa_key_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-add_uaa_key_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-add_uaa_key_command + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT jwks + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-jwks ]]; then + echo "ct-jwks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-jwks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-jwks + fi + - name: CT rabbit_oauth2_config + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_oauth2_config ]]; then + echo "ct-rabbit_oauth2_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-rabbit_oauth2_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_oauth2_config + fi + - name: CT scope + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-scope ]]; then + echo "ct-scope already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-scope \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-scope + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT wildcard_match + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-wildcard_match ]]; then + echo "ct-wildcard_match already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_backend_oauth2 \ + ct-wildcard_match \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-wildcard_match + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_backend_oauth2-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_backend_oauth2-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_backend_oauth2/logs/* + test-rabbitmq_auth_mechanism_ssl: + name: Test rabbitmq_auth_mechanism_ssl + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_mechanism_ssl \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_auth_mechanism_ssl \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_auth_mechanism_ssl-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_auth_mechanism_ssl-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_auth_mechanism_ssl/logs/* + test-rabbitmq_aws: + name: Test rabbitmq_aws + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_aws \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_aws \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_aws-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_aws/logs/* + test-rabbitmq_consistent_hash_exchange: + name: Test rabbitmq_consistent_hash_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_consistent_hash_exchange \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_consistent_hash_exchange \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_exchange_type_consistent_hash + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_exchange_type_consistent_hash ]]; then + echo "ct-rabbit_exchange_type_consistent_hash already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_consistent_hash_exchange \ + ct-rabbit_exchange_type_consistent_hash \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_exchange_type_consistent_hash + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_consistent_hash_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_consistent_hash_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_consistent_hash_exchange/logs/* + test-rabbitmq_event_exchange: + name: Test rabbitmq_event_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_event_exchange \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_event_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_event_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_event_exchange/logs/* + test-rabbitmq_federation: + name: Test rabbitmq_federation + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT exchange + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exchange ]]; then + echo "ct-exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exchange + fi + - name: CT federation_status_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-federation_status_command ]]; then + echo "ct-federation_status_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-federation_status_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-federation_status_command + fi + - name: CT queue + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-queue ]]; then + echo "ct-queue already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-queue \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-queue + fi + - name: CT rabbit_federation_status + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_federation_status ]]; then + echo "ct-rabbit_federation_status already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-rabbit_federation_status \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_federation_status + fi + - name: CT restart_federation_link_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-restart_federation_link_command ]]; then + echo "ct-restart_federation_link_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-restart_federation_link_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-restart_federation_link_command + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: CT unit_inbroker + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit_inbroker ]]; then + echo "ct-unit_inbroker already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation \ + ct-unit_inbroker \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit_inbroker + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_federation-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_federation/logs/* + test-rabbitmq_federation_management: + name: Test rabbitmq_federation_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation_management \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation_management \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT federation_mgmt + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-federation_mgmt ]]; then + echo "ct-federation_mgmt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_federation_management \ + ct-federation_mgmt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-federation_mgmt + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_federation_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_federation_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_federation_management/logs/* + test-rabbitmq_jms_topic_exchange: + name: Test rabbitmq_jms_topic_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rjms_topic_selector + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rjms_topic_selector ]]; then + echo "ct-rjms_topic_selector already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-rjms_topic_selector \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rjms_topic_selector + fi + - name: CT rjms_topic_selector_unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rjms_topic_selector_unit ]]; then + echo "ct-rjms_topic_selector_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-rjms_topic_selector_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rjms_topic_selector_unit + fi + - name: CT sjx_evaluation + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-sjx_evaluation ]]; then + echo "ct-sjx_evaluation already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_jms_topic_exchange \ + ct-sjx_evaluation \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-sjx_evaluation + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_jms_topic_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_jms_topic_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_jms_topic_exchange/logs/* + test-rabbitmq_management: + name: Test rabbitmq_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT cache + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cache ]]; then + echo "ct-cache already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-cache \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cache + fi + - name: CT clustering + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering ]]; then + echo "ct-clustering already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-clustering \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering + fi + - name: CT clustering_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-clustering_prop ]]; then + echo "ct-clustering_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-clustering_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-clustering_prop + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT listener_config + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-listener_config ]]; then + echo "ct-listener_config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-listener_config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-listener_config + fi + - name: CT rabbit_mgmt_http + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http ]]; then + echo "ct-rabbit_mgmt_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http + fi + - name: CT rabbit_mgmt_http_health_checks + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http_health_checks ]]; then + echo "ct-rabbit_mgmt_http_health_checks already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_http_health_checks \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_http_health_checks + fi + - name: CT rabbit_mgmt_only_http + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_only_http ]]; then + echo "ct-rabbit_mgmt_only_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_only_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_only_http + fi + - name: CT rabbit_mgmt_rabbitmqadmin + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_rabbitmqadmin ]]; then + echo "ct-rabbit_mgmt_rabbitmqadmin already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_rabbitmqadmin \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_rabbitmqadmin + fi + - name: CT rabbit_mgmt_stats + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_stats ]]; then + echo "ct-rabbit_mgmt_stats already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_stats \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_stats + fi + - name: CT rabbit_mgmt_test_db + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_db ]]; then + echo "ct-rabbit_mgmt_test_db already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_test_db \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_db + fi + - name: CT rabbit_mgmt_test_unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_unit ]]; then + echo "ct-rabbit_mgmt_test_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_test_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_test_unit + fi + - name: CT rabbit_mgmt_wm_auth + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_wm_auth ]]; then + echo "ct-rabbit_mgmt_wm_auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-rabbit_mgmt_wm_auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_wm_auth + fi + - name: CT stats + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-stats ]]; then + echo "ct-stats already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management \ + ct-stats \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-stats + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_management/logs/* + test-rabbitmq_management_agent: + name: Test rabbitmq_management_agent + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT exometer_slide + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-exometer_slide ]]; then + echo "ct-exometer_slide already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-exometer_slide \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-exometer_slide + fi + - name: CT metrics + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-metrics ]]; then + echo "ct-metrics already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-metrics \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-metrics + fi + - name: CT rabbit_mgmt_gc + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_gc ]]; then + echo "ct-rabbit_mgmt_gc already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-rabbit_mgmt_gc \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_gc + fi + - name: CT rabbit_mgmt_slide + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_slide ]]; then + echo "ct-rabbit_mgmt_slide already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_management_agent \ + ct-rabbit_mgmt_slide \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mgmt_slide + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_management_agent-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_management_agent-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_management_agent/logs/* + test-rabbitmq_mqtt: + name: Test rabbitmq_mqtt + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT auth + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-auth ]]; then + echo "ct-auth already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-auth \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-auth + fi + - name: CT cluster + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cluster ]]; then + echo "ct-cluster already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-cluster \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cluster + fi + - name: CT command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config ]]; then + echo "ct-config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT ff + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-ff ]]; then + echo "ct-ff already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-ff \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-ff + fi + - name: CT java + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-java ]]; then + echo "ct-java already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-java \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-java + fi + - name: CT mc_mqtt + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mc_mqtt ]]; then + echo "ct-mc_mqtt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-mc_mqtt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mc_mqtt + fi + - name: CT mqtt_machine + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-mqtt_machine ]]; then + echo "ct-mqtt_machine already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-mqtt_machine \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-mqtt_machine + fi + - name: CT packet_prop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-packet_prop ]]; then + echo "ct-packet_prop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-packet_prop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-packet_prop + fi + - name: CT processor + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-processor ]]; then + echo "ct-processor already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-processor \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-processor + fi + - name: CT protocol_interop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-protocol_interop ]]; then + echo "ct-protocol_interop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-protocol_interop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-protocol_interop + fi + - name: CT proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT rabbit_mqtt_confirms + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_mqtt_confirms ]]; then + echo "ct-rabbit_mqtt_confirms already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-rabbit_mqtt_confirms \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_mqtt_confirms + fi + - name: CT reader + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-reader ]]; then + echo "ct-reader already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-reader \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-reader + fi + - name: CT retainer + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-retainer ]]; then + echo "ct-retainer already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-retainer \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-retainer + fi + - name: CT shared + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-shared ]]; then + echo "ct-shared already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-shared \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-shared + fi + - name: CT util + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-util ]]; then + echo "ct-util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-util + fi + - name: CT v5 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-v5 ]]; then + echo "ct-v5 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_mqtt \ + ct-v5 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-v5 + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_mqtt-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_mqtt/logs/* + test-rabbitmq_peer_discovery_aws: + name: Test rabbitmq_peer_discovery_aws + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT integration + if: false + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-integration ]]; then + echo "ct-integration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-integration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-integration + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_aws \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_aws-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_aws-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_aws/logs/* + test-rabbitmq_peer_discovery_common: + name: Test rabbitmq_peer_discovery_common + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_common \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_common \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_common \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_common-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_common-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_common/logs/* + test-rabbitmq_peer_discovery_consul: + name: Test rabbitmq_peer_discovery_consul + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbitmq_peer_discovery_consul + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_consul ]]; then + echo "ct-rabbitmq_peer_discovery_consul already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_consul \ + ct-rabbitmq_peer_discovery_consul \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_consul + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_consul-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_consul-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_consul/logs/* + test-rabbitmq_peer_discovery_etcd: + name: Test rabbitmq_peer_discovery_etcd + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_etcd \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_etcd-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_etcd-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_etcd/logs/* + test-rabbitmq_peer_discovery_k8s: + name: Test rabbitmq_peer_discovery_k8s + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT rabbitmq_peer_discovery_k8s + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_k8s ]]; then + echo "ct-rabbitmq_peer_discovery_k8s already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_peer_discovery_k8s \ + ct-rabbitmq_peer_discovery_k8s \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbitmq_peer_discovery_k8s + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_peer_discovery_k8s-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_peer_discovery_k8s-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_peer_discovery_k8s/logs/* + test-rabbitmq_prelaunch: + name: Test rabbitmq_prelaunch + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_logger_std_h + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_logger_std_h ]]; then + echo "ct-rabbit_logger_std_h already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + ct-rabbit_logger_std_h \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_logger_std_h + fi + - name: CT rabbit_prelaunch_file + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_prelaunch_file ]]; then + echo "ct-rabbit_prelaunch_file already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prelaunch \ + ct-rabbit_prelaunch_file \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_prelaunch_file + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prelaunch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_prelaunch-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_prelaunch/logs/* + test-rabbitmq_prometheus: + name: Test rabbitmq_prometheus + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT prometheus_rabbitmq_federation_collector + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-prometheus_rabbitmq_federation_collector ]]; then + echo "ct-prometheus_rabbitmq_federation_collector already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-prometheus_rabbitmq_federation_collector \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-prometheus_rabbitmq_federation_collector + fi + - name: CT rabbit_prometheus_http + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_prometheus_http ]]; then + echo "ct-rabbit_prometheus_http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_prometheus \ + ct-rabbit_prometheus_http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_prometheus_http + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_prometheus-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_prometheus-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_prometheus/logs/* + test-rabbitmq_random_exchange: + name: Test rabbitmq_random_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_random_exchange \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_random_exchange \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_random_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_random_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_random_exchange/logs/* + test-rabbitmq_recent_history_exchange: + name: Test rabbitmq_recent_history_exchange + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_recent_history_exchange \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_recent_history_exchange \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_recent_history_exchange \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_recent_history_exchange-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_recent_history_exchange-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_recent_history_exchange/logs/* + test-rabbitmq_sharding: + name: Test rabbitmq_sharding + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_hash_exchange + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_hash_exchange ]]; then + echo "ct-rabbit_hash_exchange already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + ct-rabbit_hash_exchange \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_hash_exchange + fi + - name: CT rabbit_sharding + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_sharding ]]; then + echo "ct-rabbit_sharding already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_sharding \ + ct-rabbit_sharding \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_sharding + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_sharding-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_sharding-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_sharding/logs/* + test-rabbitmq_shovel: + name: Test rabbitmq_shovel + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT amqp10 + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10 ]]; then + echo "ct-amqp10 already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10 \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10 + fi + - name: CT amqp10_dynamic + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10_dynamic ]]; then + echo "ct-amqp10_dynamic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10_dynamic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10_dynamic + fi + - name: CT amqp10_shovel + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp10_shovel ]]; then + echo "ct-amqp10_shovel already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-amqp10_shovel \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp10_shovel + fi + - name: CT config + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config ]]; then + echo "ct-config already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-config \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config + fi + - name: CT configuration + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-configuration ]]; then + echo "ct-configuration already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-configuration \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-configuration + fi + - name: CT delete_shovel_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-delete_shovel_command ]]; then + echo "ct-delete_shovel_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-delete_shovel_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-delete_shovel_command + fi + - name: CT dynamic + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-dynamic ]]; then + echo "ct-dynamic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-dynamic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-dynamic + fi + - name: CT parameters + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-parameters ]]; then + echo "ct-parameters already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-parameters \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-parameters + fi + - name: CT rolling_upgrade + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rolling_upgrade ]]; then + echo "ct-rolling_upgrade already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-rolling_upgrade \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rolling_upgrade + fi + - name: CT shovel_status_command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-shovel_status_command ]]; then + echo "ct-shovel_status_command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel \ + ct-shovel_status_command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-shovel_status_command + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_shovel-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_shovel/logs/* + test-rabbitmq_shovel_management: + name: Test rabbitmq_shovel_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT http + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-http ]]; then + echo "ct-http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-http + fi + - name: CT rabbit_shovel_mgmt + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt ]]; then + echo "ct-rabbit_shovel_mgmt already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-rabbit_shovel_mgmt \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt + fi + - name: CT rabbit_shovel_mgmt_util + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt_util ]]; then + echo "ct-rabbit_shovel_mgmt_util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_shovel_management \ + ct-rabbit_shovel_mgmt_util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_shovel_mgmt_util + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_shovel_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_shovel_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_shovel_management/logs/* + test-rabbitmq_stomp: + name: Test rabbitmq_stomp + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT connections + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-connections ]]; then + echo "ct-connections already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-connections \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-connections + fi + - name: CT frame + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-frame ]]; then + echo "ct-frame already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-frame \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-frame + fi + - name: CT proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT python + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-python ]]; then + echo "ct-python already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-python \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-python + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: CT topic + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-topic ]]; then + echo "ct-topic already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-topic \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-topic + fi + - name: CT util + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-util ]]; then + echo "ct-util already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stomp \ + ct-util \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-util + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stomp-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stomp/logs/* + test-rabbitmq_stream: + name: Test rabbitmq_stream + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT commands + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-commands ]]; then + echo "ct-commands already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-commands \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-commands + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT protocol_interop + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-protocol_interop ]]; then + echo "ct-protocol_interop already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-protocol_interop \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-protocol_interop + fi + - name: CT rabbit_stream + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream ]]; then + echo "ct-rabbit_stream already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream + fi + - name: CT rabbit_stream_manager + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_manager ]]; then + echo "ct-rabbit_stream_manager already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_manager \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_manager + fi + - name: CT rabbit_stream_reader + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_reader ]]; then + echo "ct-rabbit_stream_reader already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_reader \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_reader + fi + - name: CT rabbit_stream_utils + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_stream_utils ]]; then + echo "ct-rabbit_stream_utils already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream \ + ct-rabbit_stream_utils \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_stream_utils + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream/logs/* + test-rabbitmq_stream_management: + name: Test rabbitmq_stream_management + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_management \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_management \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT http + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-http ]]; then + echo "ct-http already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_stream_management \ + ct-http \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-http + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_stream_management-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_stream_management-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_stream_management/logs/* + test-rabbitmq_top: + name: Test rabbitmq_top + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_top \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_top \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_top-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_top-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_top/logs/* + test-rabbitmq_tracing: + name: Test rabbitmq_tracing + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_tracing \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_tracing \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_tracing + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_tracing ]]; then + echo "ct-rabbit_tracing already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_tracing \ + ct-rabbit_tracing \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_tracing + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_tracing-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_tracing-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_tracing/logs/* + test-rabbitmq_trust_store: + name: Test rabbitmq_trust_store + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_trust_store \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_trust_store-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_trust_store-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_trust_store/logs/* + test-rabbitmq_web_dispatch: + name: Test rabbitmq_web_dispatch + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT rabbit_web_dispatch + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch ]]; then + echo "ct-rabbit_web_dispatch already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + ct-rabbit_web_dispatch \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch + fi + - name: CT rabbit_web_dispatch_unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch_unit ]]; then + echo "ct-rabbit_web_dispatch_unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_dispatch \ + ct-rabbit_web_dispatch_unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-rabbit_web_dispatch_unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_dispatch-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_dispatch-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_dispatch/logs/* + test-rabbitmq_web_mqtt: + name: Test rabbitmq_web_mqtt + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT command + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-command ]]; then + echo "ct-command already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-command \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-command + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT system + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-system ]]; then + echo "ct-system already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt \ + ct-system \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-system + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_mqtt-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_mqtt/logs/* + test-rabbitmq_web_mqtt_examples: + name: Test rabbitmq_web_mqtt_examples + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt_examples \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_mqtt_examples \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_mqtt_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_mqtt_examples-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_mqtt_examples/logs/* + test-rabbitmq_web_stomp: + name: Test rabbitmq_web_stomp + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: CT amqp_stomp + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-amqp_stomp ]]; then + echo "ct-amqp_stomp already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-amqp_stomp \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-amqp_stomp + fi + - name: CT config_schema + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-config_schema ]]; then + echo "ct-config_schema already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-config_schema \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-config_schema + fi + - name: CT cowboy_websocket + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-cowboy_websocket ]]; then + echo "ct-cowboy_websocket already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-cowboy_websocket \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-cowboy_websocket + fi + - name: CT proxy_protocol + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-proxy_protocol ]]; then + echo "ct-proxy_protocol already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-proxy_protocol \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-proxy_protocol + fi + - name: CT raw_websocket + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-raw_websocket ]]; then + echo "ct-raw_websocket already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-raw_websocket \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-raw_websocket + fi + - name: CT unit + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/ct-unit ]]; then + echo "ct-unit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp \ + ct-unit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/ct-unit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_stomp-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_stomp/logs/* + test-rabbitmq_web_stomp_examples: + name: Test rabbitmq_web_stomp_examples + needs: + - xref + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + otp_version: + - 26.2 + metadata_store: + - mnesia + - khepri + timeout-minutes: 180 + steps: + - name: RESTORE BUILT REPO + uses: actions/cache@v4 + with: + path: ${{ env.PRIMARY_VERSION_PATH }} + key: ${{ runner.os }}-make-cache-${{ needs.xref.outputs.hash }} + fail-on-cache-miss: true + - name: COMPUTE PREVIOUS RUN ATTEPMT + id: previous-attempt + run: | + PREVIOUS_ATTEMPT=$((${{ fromJSON(github.run_attempt) }} - 1)) + echo "number=$PREVIOUS_ATTEMPT" | tee -a $GITHUB_OUTPUT + - name: RESTORE TEST RESULT CACHE + uses: actions/cache/restore@v4 + with: + path: ${{ env.CACHE_PATH }} + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + restore-keys: | + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ steps.previous-attempt-outputs.number }} + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}- + ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}- + - name: PRINT CACHED RESULTS + run: | + set -x + tree /home/runner/test-result-cache + continue-on-error: true + - name: SETUP ERLANG/ELIXIR + uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.otp_version }} + elixir-version: 1.15 + - name: PREPARE + run: | + mkdir -p ${{ env.CACHE_PATH }} + - name: DIALYZE + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/dialyze ]]; then + echo "dialyze already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp_examples \ + dialyze \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/dialyze + fi + continue-on-error: false + - name: EUNIT + working-directory: ${{ env.PRIMARY_VERSION_PATH }} + run: | + if [[ -f ${{ env.CACHE_PATH }}/eunit ]]; then + echo "eunit already passed for this key ${{ needs.xref.outputs.hash }}" + else + make -C deps/rabbitmq_web_stomp_examples \ + eunit \ + RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} + touch ${{ env.CACHE_PATH }}/eunit + fi + - name: SAVE TEST RESULT CACHE + if: always() + uses: actions/cache/save@v4 + with: + path: /home/runner/test-result-cache/ + key: ${{ runner.os }}-test-result-cache-${{ needs.xref.outputs.hash }}-rabbitmq_web_stomp_examples-mixed-none-${{ matrix.metadata_store }}-${{ matrix.otp_version }}-${{ github.run_number }}-${{ github.run_attempt }} + - name: UPLOAD TEST ARTIFACTS + if: always() + uses: actions/upload-artifact@v4.3.1 + with: + name: testlogs-rabbitmq_web_stomp_examples-${{ matrix.metadata_store }}-${{ matrix.otp_version }} + path: | + ${{ env.PRIMARY_VERSION_PATH }}/deps/rabbitmq_web_stomp_examples/logs/* + summary-test-make: + if: always() + needs: + - xref + - test-rabbit + - test-rabbitmq_cli + - test-amqp10_client + - test-amqp10_common + - test-amqp_client + - test-oauth2_client + - test-rabbit_common + - test-rabbitmq_ct_client_helpers + - test-rabbitmq_ct_helpers + - test-rabbitmq_stream_common + - test-trust_store_http + - test-rabbitmq_amqp_client + - test-rabbitmq_amqp1_0 + - test-rabbitmq_auth_backend_cache + - test-rabbitmq_auth_backend_http + - test-rabbitmq_auth_backend_ldap + - test-rabbitmq_auth_backend_oauth2 + - test-rabbitmq_auth_mechanism_ssl + - test-rabbitmq_aws + - test-rabbitmq_consistent_hash_exchange + - test-rabbitmq_event_exchange + - test-rabbitmq_federation + - test-rabbitmq_federation_management + - test-rabbitmq_jms_topic_exchange + - test-rabbitmq_management + - test-rabbitmq_management_agent + - test-rabbitmq_mqtt + - test-rabbitmq_peer_discovery_aws + - test-rabbitmq_peer_discovery_common + - test-rabbitmq_peer_discovery_consul + - test-rabbitmq_peer_discovery_etcd + - test-rabbitmq_peer_discovery_k8s + - test-rabbitmq_prelaunch + - test-rabbitmq_prometheus + - test-rabbitmq_random_exchange + - test-rabbitmq_recent_history_exchange + - test-rabbitmq_sharding + - test-rabbitmq_shovel + - test-rabbitmq_shovel_management + - test-rabbitmq_stomp + - test-rabbitmq_stream + - test-rabbitmq_stream_management + - test-rabbitmq_top + - test-rabbitmq_tracing + - test-rabbitmq_trust_store + - test-rabbitmq_web_dispatch + - test-rabbitmq_web_mqtt + - test-rabbitmq_web_mqtt_examples + - test-rabbitmq_web_stomp + - test-rabbitmq_web_stomp_examples + runs-on: ubuntu-latest + steps: + - name: SUMMARY + run: | + cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' + ${{ toJson(needs) }} + EOF diff --git a/Makefile b/Makefile index e44675e1ca52..51314ff9dc1c 100644 --- a/Makefile +++ b/Makefile @@ -557,3 +557,93 @@ install-windows-docs: install-windows-erlapp *) mv "$$file" "$$file.txt" ;; \ esac; \ done + +INTERNAL_DEPS := \ + amqp10_client \ + amqp10_common \ + amqp_client \ + oauth2_client \ + rabbit_common \ + rabbitmq_ct_client_helpers \ + rabbitmq_ct_helpers \ + rabbitmq_stream_common \ + trust_store_http + +TIER1_PLUGINS := \ + rabbitmq_amqp_client \ + rabbitmq_amqp1_0 \ + 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_jms_topic_exchange \ + rabbitmq_management \ + rabbitmq_management_agent \ + rabbitmq_mqtt \ + rabbitmq_peer_discovery_aws \ + rabbitmq_peer_discovery_common \ + rabbitmq_peer_discovery_consul \ + rabbitmq_peer_discovery_etcd \ + rabbitmq_peer_discovery_k8s \ + rabbitmq_prelaunch \ + rabbitmq_prometheus \ + rabbitmq_random_exchange \ + rabbitmq_recent_history_exchange \ + rabbitmq_sharding \ + rabbitmq_shovel \ + rabbitmq_shovel_management \ + rabbitmq_stomp \ + rabbitmq_stream \ + rabbitmq_stream_management \ + rabbitmq_top \ + rabbitmq_tracing \ + rabbitmq_trust_store \ + rabbitmq_web_dispatch \ + rabbitmq_web_mqtt \ + rabbitmq_web_mqtt_examples \ + rabbitmq_web_stomp \ + rabbitmq_web_stomp_examples + +TESTED_PLUGINS := $(INTERNAL_DEPS) rabbit $(TIER1_PLUGINS) + +PLUGIN_SUITES_FILES := $(addprefix .github/workflows/data/,$(addsuffix .yaml,$(TESTED_PLUGINS))) + +YTT ?= ytt + +actions-workflows: .github/workflows/test-make.yaml .github/workflows/test-make-mixed.yaml + +.PHONY: .github/workflows/test-make.yaml .github/workflows/test-make-mixed.yaml + +.github/workflows/test-make.yaml: .github/workflows/templates/test-make.template.yaml $(PLUGIN_SUITES_FILES) + $(gen_verbose) $(YTT) \ + --file $< \ + $(foreach f,$(PLUGIN_SUITES_FILES),--data-values-file $f) \ + --data-value-yaml internal_deps=[$(subst $(space),$(comma),$(foreach s,$(INTERNAL_DEPS),"$s"))] \ + --data-value-yaml tier1_plugins=[$(subst $(space),$(comma),$(foreach s,$(TIER1_PLUGINS),"$s"))] \ + --data-value mixed_version_ref=none \ + | sed 's/^true:/on:/' \ + | sed 's/pull_request: null/pull_request:/'> $@ + +.github/workflows/test-make-mixed.yaml: .github/workflows/templates/test-make.template.yaml $(PLUGIN_SUITES_FILES) + $(gen_verbose) $(YTT) \ + --file $< \ + $(foreach f,$(PLUGIN_SUITES_FILES),--data-values-file $f) \ + --data-value-yaml internal_deps=[$(subst $(space),$(comma),$(foreach s,$(INTERNAL_DEPS),"$s"))] \ + --data-value-yaml tier1_plugins=[$(subst $(space),$(comma),$(foreach s,$(TIER1_PLUGINS),"$s"))] \ + --data-value mixed_version_ref=v3.13.x \ + | sed 's/^true:/on:/' \ + | sed 's/pull_request: null/pull_request:/'> $@ + +.PHONY: .github/workflows/data + +.github/workflows/data: + mkdir -p $@ + +.github/workflows/data/%.yaml: .github/workflows/data + $(gen_verbose) $(MAKE) -C deps/$* ../../.github/workflows/data/$*.yaml diff --git a/deps/amqp10_client/Makefile b/deps/amqp10_client/Makefile index 6e6629bd7a11..614e9ab8663d 100644 --- a/deps/amqp10_client/Makefile +++ b/deps/amqp10_client/Makefile @@ -47,6 +47,7 @@ dep_elvis_mk = git https://github.com/inaka/elvis.mk.git master include rabbitmq-components.mk include erlang.mk +include github-actions.mk HEX_TARBALL_FILES += rabbitmq-components.mk \ git-revisions.txt diff --git a/deps/amqp10_client/github-actions.mk b/deps/amqp10_client/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/amqp10_client/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/amqp10_common/Makefile b/deps/amqp10_common/Makefile index 6d1b124b817b..902414c314f6 100644 --- a/deps/amqp10_common/Makefile +++ b/deps/amqp10_common/Makefile @@ -49,6 +49,7 @@ PLT_APPS = eunit include rabbitmq-components.mk include erlang.mk +include github-actions.mk HEX_TARBALL_FILES += rabbitmq-components.mk \ git-revisions.txt diff --git a/deps/amqp10_common/github-actions.mk b/deps/amqp10_common/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/amqp10_common/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/amqp_client/Makefile b/deps/amqp_client/Makefile index c873f300e553..5c4129519788 100644 --- a/deps/amqp_client/Makefile +++ b/deps/amqp_client/Makefile @@ -55,6 +55,7 @@ PLT_APPS = ssl public_key include rabbitmq-components.mk include erlang.mk +include github-actions.mk HEX_TARBALL_FILES += rabbitmq-components.mk \ git-revisions.txt diff --git a/deps/amqp_client/github-actions.mk b/deps/amqp_client/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/amqp_client/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/oauth2_client/Makefile b/deps/oauth2_client/Makefile index 684458c82677..801e39d9e82d 100644 --- a/deps/oauth2_client/Makefile +++ b/deps/oauth2_client/Makefile @@ -20,3 +20,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-macros.mk \ include rabbitmq-components.mk include erlang.mk +include github-actions.mk diff --git a/deps/oauth2_client/github-actions.mk b/deps/oauth2_client/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/oauth2_client/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/rabbit/Makefile b/deps/rabbit/Makefile index ae3cc4207d00..14eb11cf406c 100644 --- a/deps/rabbit/Makefile +++ b/deps/rabbit/Makefile @@ -135,7 +135,7 @@ BUILD_DEPS = rabbitmq_cli looking_glass DEPS = ranch rabbit_common amqp10_common rabbitmq_prelaunch ra sysmon_handler stdout_formatter recon redbug observer_cli osiris syslog systemd seshat khepri khepri_mnesia_migration cuttlefish gen_batch_server TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers meck proper amqp_client rabbitmq_amqp_client rabbitmq_amqp1_0 -PLT_APPS += mnesia runtime_tools looking_glass +PLT_APPS += mnesia runtime_tools looking_glass horus dep_syslog = git https://github.com/schlagert/syslog 4.0.0 dep_osiris = git https://github.com/rabbitmq/osiris v1.8.1 @@ -161,6 +161,7 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk \ include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk ifeq ($(strip $(BATS)),) BATS := $(ERLANG_MK_TMP)/bats/bin/bats diff --git a/deps/rabbit_common/Makefile b/deps/rabbit_common/Makefile index 86584eb97574..42ee2cb38ddc 100644 --- a/deps/rabbit_common/Makefile +++ b/deps/rabbit_common/Makefile @@ -49,6 +49,7 @@ PLT_APPS += mnesia crypto ssl include rabbitmq-components.mk include erlang.mk +include github-actions.mk HEX_TARBALL_FILES += rabbitmq-components.mk \ git-revisions.txt \ diff --git a/deps/rabbit_common/github-actions.mk b/deps/rabbit_common/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/rabbit_common/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/rabbitmq_amqp1_0/Makefile b/deps/rabbitmq_amqp1_0/Makefile index ffbfaf90da06..f7ef005d9cb6 100644 --- a/deps/rabbitmq_amqp1_0/Makefile +++ b/deps/rabbitmq_amqp1_0/Makefile @@ -10,3 +10,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_amqp_client/Makefile b/deps/rabbitmq_amqp_client/Makefile index 99ec4850555b..a191fce8036f 100644 --- a/deps/rabbitmq_amqp_client/Makefile +++ b/deps/rabbitmq_amqp_client/Makefile @@ -20,3 +20,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-macros.mk \ include rabbitmq-components.mk include erlang.mk +include github-actions.mk diff --git a/deps/rabbitmq_amqp_client/github-actions.mk b/deps/rabbitmq_amqp_client/github-actions.mk new file mode 120000 index 000000000000..55028680bba4 --- /dev/null +++ b/deps/rabbitmq_amqp_client/github-actions.mk @@ -0,0 +1 @@ +../../github-actions.mk \ No newline at end of file diff --git a/deps/rabbitmq_auth_backend_cache/Makefile b/deps/rabbitmq_auth_backend_cache/Makefile index 4a91fb69bb56..baa3e506dad3 100644 --- a/deps/rabbitmq_auth_backend_cache/Makefile +++ b/deps/rabbitmq_auth_backend_cache/Makefile @@ -24,3 +24,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_auth_backend_http/Makefile b/deps/rabbitmq_auth_backend_http/Makefile index 692dfeefb51c..fa3c59c794ca 100644 --- a/deps/rabbitmq_auth_backend_http/Makefile +++ b/deps/rabbitmq_auth_backend_http/Makefile @@ -27,3 +27,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_auth_backend_ldap/Makefile b/deps/rabbitmq_auth_backend_ldap/Makefile index 2224ea369a3b..2359863bfb75 100644 --- a/deps/rabbitmq_auth_backend_ldap/Makefile +++ b/deps/rabbitmq_auth_backend_ldap/Makefile @@ -44,3 +44,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_auth_backend_oauth2/Makefile b/deps/rabbitmq_auth_backend_oauth2/Makefile index d262845f2cd4..49ec4d080467 100644 --- a/deps/rabbitmq_auth_backend_oauth2/Makefile +++ b/deps/rabbitmq_auth_backend_oauth2/Makefile @@ -6,7 +6,7 @@ BUILD_WITHOUT_QUIC=1 export BUILD_WITHOUT_QUIC LOCAL_DEPS = inets public_key -BUILD_DEPS = rabbit_common oauth2_client +BUILD_DEPS = rabbit_common DEPS = rabbit cowlib jose base64url oauth2_client TEST_DEPS = cowboy rabbitmq_web_dispatch rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client rabbitmq_mqtt emqtt @@ -22,3 +22,4 @@ dep_emqtt = git https://github.com/rabbitmq/emqtt.git master include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_auth_mechanism_ssl/Makefile b/deps/rabbitmq_auth_mechanism_ssl/Makefile index 9b540fdaf716..f1379464a0c2 100644 --- a/deps/rabbitmq_auth_mechanism_ssl/Makefile +++ b/deps/rabbitmq_auth_mechanism_ssl/Makefile @@ -20,3 +20,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_aws/Makefile b/deps/rabbitmq_aws/Makefile index 29089276c9b1..de316a60c9f6 100644 --- a/deps/rabbitmq_aws/Makefile +++ b/deps/rabbitmq_aws/Makefile @@ -14,3 +14,4 @@ TEST_DEPS = meck include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_consistent_hash_exchange/Makefile b/deps/rabbitmq_consistent_hash_exchange/Makefile index 9dbafcaaa69b..54ce5c95fd27 100644 --- a/deps/rabbitmq_consistent_hash_exchange/Makefile +++ b/deps/rabbitmq_consistent_hash_exchange/Makefile @@ -15,3 +15,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_ct_client_helpers/Makefile b/deps/rabbitmq_ct_client_helpers/Makefile index c61e87a82a34..db6d1ab80469 100644 --- a/deps/rabbitmq_ct_client_helpers/Makefile +++ b/deps/rabbitmq_ct_client_helpers/Makefile @@ -10,3 +10,4 @@ PLT_APPS = common_test include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_ct_helpers/Makefile b/deps/rabbitmq_ct_helpers/Makefile index 2e1f19839036..a2c540f38f03 100644 --- a/deps/rabbitmq_ct_helpers/Makefile +++ b/deps/rabbitmq_ct_helpers/Makefile @@ -17,5 +17,6 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk \ include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk ERLC_OPTS += +nowarn_export_all diff --git a/deps/rabbitmq_event_exchange/Makefile b/deps/rabbitmq_event_exchange/Makefile index f1f5ff81d952..25f8dad0af32 100644 --- a/deps/rabbitmq_event_exchange/Makefile +++ b/deps/rabbitmq_event_exchange/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_federation/Makefile b/deps/rabbitmq_federation/Makefile index 1493d8efea5b..62e2a157c60e 100644 --- a/deps/rabbitmq_federation/Makefile +++ b/deps/rabbitmq_federation/Makefile @@ -23,3 +23,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_federation_management/Makefile b/deps/rabbitmq_federation_management/Makefile index 71ecae0fa504..2df7ad5d635b 100644 --- a/deps/rabbitmq_federation_management/Makefile +++ b/deps/rabbitmq_federation_management/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_jms_topic_exchange/Makefile b/deps/rabbitmq_jms_topic_exchange/Makefile index d30c8823199c..cc22405ce3a6 100644 --- a/deps/rabbitmq_jms_topic_exchange/Makefile +++ b/deps/rabbitmq_jms_topic_exchange/Makefile @@ -10,3 +10,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_management/Makefile b/deps/rabbitmq_management/Makefile index 59d5c1e66e3f..a119f33bf059 100644 --- a/deps/rabbitmq_management/Makefile +++ b/deps/rabbitmq_management/Makefile @@ -34,6 +34,7 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk # -------------------------------------------------------------------- # Distribution. diff --git a/deps/rabbitmq_management_agent/Makefile b/deps/rabbitmq_management_agent/Makefile index 13531dd7da93..4ebf5fabad9d 100644 --- a/deps/rabbitmq_management_agent/Makefile +++ b/deps/rabbitmq_management_agent/Makefile @@ -29,3 +29,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk TEST_DEPS := $(filter-out rabbitmq_test,$(TEST_DEPS)) include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_mqtt/Makefile b/deps/rabbitmq_mqtt/Makefile index 67f649a94dd1..fa18ead48d87 100644 --- a/deps/rabbitmq_mqtt/Makefile +++ b/deps/rabbitmq_mqtt/Makefile @@ -57,6 +57,7 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk clean:: diff --git a/deps/rabbitmq_peer_discovery_aws/Makefile b/deps/rabbitmq_peer_discovery_aws/Makefile index 4052fec45533..827015b99cf2 100644 --- a/deps/rabbitmq_peer_discovery_aws/Makefile +++ b/deps/rabbitmq_peer_discovery_aws/Makefile @@ -11,3 +11,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_peer_discovery_common/Makefile b/deps/rabbitmq_peer_discovery_common/Makefile index 9ac0691e8ecf..16591a6f3a1d 100644 --- a/deps/rabbitmq_peer_discovery_common/Makefile +++ b/deps/rabbitmq_peer_discovery_common/Makefile @@ -12,3 +12,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_peer_discovery_consul/Makefile b/deps/rabbitmq_peer_discovery_consul/Makefile index f51ce7c8bd99..ace0947bbcf3 100644 --- a/deps/rabbitmq_peer_discovery_consul/Makefile +++ b/deps/rabbitmq_peer_discovery_consul/Makefile @@ -11,3 +11,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_peer_discovery_etcd/Makefile b/deps/rabbitmq_peer_discovery_etcd/Makefile index 437336e5ce6d..054d8d4ebe3f 100644 --- a/deps/rabbitmq_peer_discovery_etcd/Makefile +++ b/deps/rabbitmq_peer_discovery_etcd/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_peer_discovery_k8s/Makefile b/deps/rabbitmq_peer_discovery_k8s/Makefile index 01a791551cf9..a65ae05c7a61 100644 --- a/deps/rabbitmq_peer_discovery_k8s/Makefile +++ b/deps/rabbitmq_peer_discovery_k8s/Makefile @@ -11,3 +11,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_prelaunch/Makefile b/deps/rabbitmq_prelaunch/Makefile index bf30b6c5f8b5..0d5587a03b9d 100644 --- a/deps/rabbitmq_prelaunch/Makefile +++ b/deps/rabbitmq_prelaunch/Makefile @@ -11,3 +11,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_prometheus/BUILD.bazel b/deps/rabbitmq_prometheus/BUILD.bazel index 64a4325d234d..4735bd6eadcf 100644 --- a/deps/rabbitmq_prometheus/BUILD.bazel +++ b/deps/rabbitmq_prometheus/BUILD.bazel @@ -103,7 +103,7 @@ rabbitmq_integration_suite( name = "prometheus_rabbitmq_federation_collector_SUITE", size = "small", additional_beam = [ - "//deps/rabbitmq_federation:test/rabbit_federation_test_util.beam", #keep + "test/rabbit_federation_test_util.beam", #keep "test/rabbitmq_prometheus_collector_test_proxy.beam", #keep ], ) diff --git a/deps/rabbitmq_prometheus/Makefile b/deps/rabbitmq_prometheus/Makefile index abfb4195f722..bdcfd2d08d7c 100644 --- a/deps/rabbitmq_prometheus/Makefile +++ b/deps/rabbitmq_prometheus/Makefile @@ -25,6 +25,7 @@ endif include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk .PHONY: readme readme: # Preview README & live reload on edit diff --git a/deps/rabbitmq_prometheus/app.bzl b/deps/rabbitmq_prometheus/app.bzl index 8bf9a036be25..8444663cc595 100644 --- a/deps/rabbitmq_prometheus/app.bzl +++ b/deps/rabbitmq_prometheus/app.bzl @@ -144,3 +144,13 @@ def test_suite_beam_files(name = "test_suite_beam_files"): app_name = "rabbitmq_prometheus", erlc_opts = "//:test_erlc_opts", ) + erlang_bytecode( + name = "test_rabbit_federation_test_util_beam", + testonly = True, + srcs = ["test/rabbit_federation_test_util.erl"], + outs = ["test/rabbit_federation_test_util.beam"], + hdrs = ["test/rabbit_federation.hrl"], + app_name = "rabbitmq_prometheus", + erlc_opts = "//:test_erlc_opts", + deps = ["//deps/amqp_client:erlang_app"], + ) diff --git a/deps/rabbitmq_prometheus/test/rabbit_federation.hrl b/deps/rabbitmq_prometheus/test/rabbit_federation.hrl new file mode 120000 index 000000000000..ee3b49065925 --- /dev/null +++ b/deps/rabbitmq_prometheus/test/rabbit_federation.hrl @@ -0,0 +1 @@ +../../rabbitmq_federation/include/rabbit_federation.hrl \ No newline at end of file diff --git a/deps/rabbitmq_prometheus/test/rabbit_federation_test_util.erl b/deps/rabbitmq_prometheus/test/rabbit_federation_test_util.erl new file mode 120000 index 000000000000..6eacf5d2531f --- /dev/null +++ b/deps/rabbitmq_prometheus/test/rabbit_federation_test_util.erl @@ -0,0 +1 @@ +../../rabbitmq_federation/test/rabbit_federation_test_util.erl \ No newline at end of file diff --git a/deps/rabbitmq_random_exchange/Makefile b/deps/rabbitmq_random_exchange/Makefile index 1b047d791e19..21191c273749 100644 --- a/deps/rabbitmq_random_exchange/Makefile +++ b/deps/rabbitmq_random_exchange/Makefile @@ -9,3 +9,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_recent_history_exchange/Makefile b/deps/rabbitmq_recent_history_exchange/Makefile index 045382e11bff..ec46f4816c95 100644 --- a/deps/rabbitmq_recent_history_exchange/Makefile +++ b/deps/rabbitmq_recent_history_exchange/Makefile @@ -15,3 +15,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_sharding/Makefile b/deps/rabbitmq_sharding/Makefile index ce296c4a5edd..40d1dade77e1 100644 --- a/deps/rabbitmq_sharding/Makefile +++ b/deps/rabbitmq_sharding/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_shovel/Makefile b/deps/rabbitmq_shovel/Makefile index 00e39ad42c50..ce2757bbbecd 100644 --- a/deps/rabbitmq_shovel/Makefile +++ b/deps/rabbitmq_shovel/Makefile @@ -33,3 +33,4 @@ dep_elvis_mk = git https://github.com/inaka/elvis.mk.git master include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_shovel_management/Makefile b/deps/rabbitmq_shovel_management/Makefile index 1b5f98d02936..d2716fea24c5 100644 --- a/deps/rabbitmq_shovel_management/Makefile +++ b/deps/rabbitmq_shovel_management/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_stomp/Makefile b/deps/rabbitmq_stomp/Makefile index 0b14a1f95ab3..ee3d658ac07d 100644 --- a/deps/rabbitmq_stomp/Makefile +++ b/deps/rabbitmq_stomp/Makefile @@ -40,3 +40,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_stream/Makefile b/deps/rabbitmq_stream/Makefile index 54b1237a589a..de1a9a2671a0 100644 --- a/deps/rabbitmq_stream/Makefile +++ b/deps/rabbitmq_stream/Makefile @@ -32,3 +32,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_stream_common/Makefile b/deps/rabbitmq_stream_common/Makefile index 914a868f1c7c..d969eb1bdf5d 100644 --- a/deps/rabbitmq_stream_common/Makefile +++ b/deps/rabbitmq_stream_common/Makefile @@ -17,3 +17,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_stream_management/Makefile b/deps/rabbitmq_stream_management/Makefile index cb2b4b0ff9cc..9e3873d4e376 100644 --- a/deps/rabbitmq_stream_management/Makefile +++ b/deps/rabbitmq_stream_management/Makefile @@ -16,3 +16,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_top/Makefile b/deps/rabbitmq_top/Makefile index e841d3441452..5350e171703a 100644 --- a/deps/rabbitmq_top/Makefile +++ b/deps/rabbitmq_top/Makefile @@ -13,3 +13,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_tracing/Makefile b/deps/rabbitmq_tracing/Makefile index 46216f4154d3..09d5f55f2854 100644 --- a/deps/rabbitmq_tracing/Makefile +++ b/deps/rabbitmq_tracing/Makefile @@ -22,3 +22,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_trust_store/Makefile b/deps/rabbitmq_trust_store/Makefile index 77440b74080d..be22873a9d7b 100644 --- a/deps/rabbitmq_trust_store/Makefile +++ b/deps/rabbitmq_trust_store/Makefile @@ -20,3 +20,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_web_dispatch/Makefile b/deps/rabbitmq_web_dispatch/Makefile index d0930e86829a..ec91aa27642b 100644 --- a/deps/rabbitmq_web_dispatch/Makefile +++ b/deps/rabbitmq_web_dispatch/Makefile @@ -16,3 +16,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk TEST_DEPS := $(filter-out rabbitmq_test,$(TEST_DEPS)) include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_web_mqtt/Makefile b/deps/rabbitmq_web_mqtt/Makefile index bdafdeebedb8..a9fa13c94cc8 100644 --- a/deps/rabbitmq_web_mqtt/Makefile +++ b/deps/rabbitmq_web_mqtt/Makefile @@ -34,3 +34,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_web_mqtt_examples/Makefile b/deps/rabbitmq_web_mqtt_examples/Makefile index 78151d80d94f..1ea9d9c3d5ad 100644 --- a/deps/rabbitmq_web_mqtt_examples/Makefile +++ b/deps/rabbitmq_web_mqtt_examples/Makefile @@ -15,3 +15,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_web_stomp/Makefile b/deps/rabbitmq_web_stomp/Makefile index 505d5d6f3926..5d2a77e09017 100644 --- a/deps/rabbitmq_web_stomp/Makefile +++ b/deps/rabbitmq_web_stomp/Makefile @@ -33,3 +33,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/rabbitmq_web_stomp_examples/Makefile b/deps/rabbitmq_web_stomp_examples/Makefile index c45e7380202e..c7a93201c28c 100644 --- a/deps/rabbitmq_web_stomp_examples/Makefile +++ b/deps/rabbitmq_web_stomp_examples/Makefile @@ -15,3 +15,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/deps/trust_store_http/Makefile b/deps/trust_store_http/Makefile index 341d187df719..4ffad19d75f2 100644 --- a/deps/trust_store_http/Makefile +++ b/deps/trust_store_http/Makefile @@ -14,3 +14,4 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk include ../../erlang.mk +include ../../github-actions.mk diff --git a/github-actions.mk b/github-actions.mk new file mode 100644 index 000000000000..f47312934c6c --- /dev/null +++ b/github-actions.mk @@ -0,0 +1,19 @@ +ifeq ($(CT_SUITES),) +define suites_yaml +--- +$(PROJECT): + suites: [] +endef +else +define suites_yaml +--- +$(PROJECT): + suites: + - $(subst $(space),$(newline) - ,$(CT_SUITES)) +endef +endif + +.PHONY: ../../.github/workflows/data/$(PROJECT).yaml + +../../.github/workflows/data/$(PROJECT).yaml: $(wildcard test/*_SUITE.erl) + $(file > $@,$(suites_yaml))