Skip to content

Commit 904cfc9

Browse files
committed
Merge branch 'main' into otel-integration-package
2 parents 4da85c8 + b79c261 commit 904cfc9

File tree

82 files changed

+3366
-1950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+3366
-1950
lines changed

.ci/ubuntu/gha-setup.sh

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ else
3131
readonly run_toxiproxy='false'
3232
fi
3333

34+
if [[ $2 == 'pull' ]]
35+
then
36+
readonly docker_pull_args='--pull always'
37+
else
38+
readonly docker_pull_args=''
39+
fi
40+
3441
set -o nounset
3542

3643
declare -r rabbitmq_docker_name="$docker_name_prefix-rabbitmq"
@@ -43,13 +50,14 @@ function start_toxiproxy
4350
# sudo ss -4nlp
4451
echo "[INFO] starting Toxiproxy server docker container"
4552
docker rm --force "$toxiproxy_docker_name" 2>/dev/null || echo "[INFO] $toxiproxy_docker_name was not running"
46-
docker run --pull always --detach \
53+
# shellcheck disable=SC2086
54+
docker run --detach $docker_pull_args \
4755
--name "$toxiproxy_docker_name" \
4856
--hostname "$toxiproxy_docker_name" \
4957
--publish 8474:8474 \
50-
--publish 55672:55672 \
58+
--publish 55670-55680:55670-55680 \
5159
--network "$docker_network_name" \
52-
'ghcr.io/shopify/toxiproxy:2.7.0'
60+
'ghcr.io/shopify/toxiproxy:latest'
5361
fi
5462
}
5563

@@ -58,17 +66,19 @@ function start_rabbitmq
5866
echo "[INFO] starting RabbitMQ server docker container"
5967
chmod 0777 "$GITHUB_WORKSPACE/.ci/ubuntu/log"
6068
docker rm --force "$rabbitmq_docker_name" 2>/dev/null || echo "[INFO] $rabbitmq_docker_name was not running"
61-
docker run --pull always --detach \
69+
# shellcheck disable=SC2086
70+
docker run --detach $docker_pull_args \
6271
--name "$rabbitmq_docker_name" \
6372
--hostname "$rabbitmq_docker_name" \
6473
--publish 5671:5671 \
6574
--publish 5672:5672 \
75+
--publish 15672:15672 \
6676
--network "$docker_network_name" \
6777
--volume "$GITHUB_WORKSPACE/.ci/ubuntu/enabled_plugins:/etc/rabbitmq/enabled_plugins" \
6878
--volume "$GITHUB_WORKSPACE/.ci/ubuntu/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro" \
6979
--volume "$GITHUB_WORKSPACE/.ci/certs:/etc/rabbitmq/certs:ro" \
7080
--volume "$GITHUB_WORKSPACE/.ci/ubuntu/log:/var/log/rabbitmq" \
71-
rabbitmq:latest
81+
rabbitmq:management
7282
}
7383

7484
function wait_rabbitmq
@@ -100,7 +110,8 @@ function wait_rabbitmq
100110

101111
function get_rabbitmq_id
102112
{
103-
local rabbitmq_docker_id="$(docker inspect --format='{{.Id}}' "$rabbitmq_docker_name")"
113+
local rabbitmq_docker_id
114+
rabbitmq_docker_id="$(docker inspect --format='{{.Id}}' "$rabbitmq_docker_name")"
104115
echo "[INFO] '$rabbitmq_docker_name' docker id is '$rabbitmq_docker_id'"
105116
if [[ -v GITHUB_OUTPUT ]]
106117
then

.editorconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ dotnet_diagnostic.RS0036.severity = none
169169
dotnet_diagnostic.RS0041.severity = none
170170
dotnet_diagnostic.RS0051.severity = error
171171

172+
dotnet_diagnostic.CA2007.severity = error
173+
172174
# C++ Files
173175
[*.{cpp,h,in}]
174176
curly_bracket_next_line = true

.github/workflows/build-test.yaml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55

66
jobs:
77
build-win32:
8-
runs-on: windows-2019
8+
runs-on: windows-latest
99
# https://github.com/NuGet/Home/issues/11548
1010
env:
1111
NUGET_CERT_REVOCATION_MODE: offline
@@ -42,7 +42,7 @@ jobs:
4242
projects/RabbitMQ.*/bin
4343
integration-win32:
4444
needs: build-win32
45-
runs-on: windows-2019
45+
runs-on: windows-latest
4646
# https://github.com/NuGet/Home/issues/11548
4747
env:
4848
NUGET_CERT_REVOCATION_MODE: offline
@@ -57,7 +57,7 @@ jobs:
5757
# Note: the cache path is relative to the workspace directory
5858
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#using-the-cache-action
5959
path: ~/installers
60-
key: ${{ runner.os }}-v0-${{ hashFiles('.ci/versions.json') }}
60+
key: ${{ runner.os }}-v0-${{ hashFiles('.ci/windows/versions.json') }}
6161
- name: Download Build (Debug)
6262
uses: actions/download-artifact@v4
6363
with:
@@ -73,8 +73,8 @@ jobs:
7373
Receive-Job -Job $tx; `
7474
& "${{ github.workspace }}\.ci\windows\toxiproxy\toxiproxy-cli.exe" list; `
7575
dotnet test `
76-
--environment "RABBITMQ_RABBITMQCTL_PATH=${{ steps.install-start-rabbitmq.outputs.path }}" `
7776
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' `
77+
--environment "RABBITMQ_RABBITMQCTL_PATH=${{ steps.install-start-rabbitmq.outputs.path }}" `
7878
--environment 'RABBITMQ_TOXIPROXY_TESTS=true' `
7979
--environment 'PASSWORD=grapefruit' `
8080
--environment SSL_CERTS_DIR="${{ github.workspace }}\.ci\certs" `
@@ -89,7 +89,7 @@ jobs:
8989
path: ~/AppData/Roaming/RabbitMQ/log/
9090
sequential-integration-win32:
9191
needs: build-win32
92-
runs-on: windows-2019
92+
runs-on: windows-latest
9393
# https://github.com/NuGet/Home/issues/11548
9494
env:
9595
NUGET_CERT_REVOCATION_MODE: offline
@@ -104,7 +104,7 @@ jobs:
104104
# Note: the cache path is relative to the workspace directory
105105
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#using-the-cache-action
106106
path: ~/installers
107-
key: ${{ runner.os }}-v0-${{ hashFiles('.ci/versions.json') }}
107+
key: ${{ runner.os }}-v0-${{ hashFiles('.ci/windows/versions.json') }}
108108
- name: Download Build (Debug)
109109
uses: actions/download-artifact@v4
110110
with:
@@ -114,7 +114,12 @@ jobs:
114114
id: install-start-rabbitmq
115115
run: ${{ github.workspace }}\.ci\windows\gha-setup.ps1
116116
- name: Sequential Integration Tests
117-
run: dotnet test --environment "RABBITMQ_RABBITMQCTL_PATH=${{ steps.install-start-rabbitmq.outputs.path }}" "${{ github.workspace }}\projects\Test\SequentialIntegration\SequentialIntegration.csproj" --no-restore --no-build --logger 'console;verbosity=detailed'
117+
run: dotnet test `
118+
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' `
119+
--environment "RABBITMQ_RABBITMQCTL_PATH=${{ steps.install-start-rabbitmq.outputs.path }}" `
120+
--environment 'PASSWORD=grapefruit' `
121+
--environment SSL_CERTS_DIR="${{ github.workspace }}\.ci\certs" `
122+
"${{ github.workspace }}\projects\Test\SequentialIntegration\SequentialIntegration.csproj" --no-restore --no-build --logger 'console;verbosity=detailed'
118123
- name: Maybe upload RabbitMQ logs
119124
if: failure()
120125
uses: actions/upload-artifact@v4
@@ -182,14 +187,17 @@ jobs:
182187
- name: Integration Tests
183188
run: |
184189
dotnet test \
185-
--environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:${{ steps.start-rabbitmq.outputs.id }}" \
186190
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' \
191+
--environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:${{ steps.start-rabbitmq.outputs.id }}" \
187192
--environment 'RABBITMQ_TOXIPROXY_TESTS=true' \
188193
--environment 'PASSWORD=grapefruit' \
189194
--environment SSL_CERTS_DIR="${{ github.workspace }}/.ci/certs" \
190195
"${{ github.workspace }}/projects/Test/Integration/Integration.csproj" --no-restore --no-build --logger 'console;verbosity=detailed'
191196
- name: Check for errors in RabbitMQ logs
192197
run: ${{ github.workspace}}/.ci/ubuntu/gha-log-check.sh
198+
- name: Maybe collect toxiproxy logs
199+
if: failure()
200+
run: docker logs rabbitmq-dotnet-client-toxiproxy > ${{ github.workspace }}/.ci/ubuntu/log/toxiproxy.log
193201
- name: Maybe upload RabbitMQ logs
194202
if: failure()
195203
uses: actions/upload-artifact@v4
@@ -219,7 +227,10 @@ jobs:
219227
- name: Sequential Integration Tests
220228
run: |
221229
dotnet test \
230+
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' \
222231
--environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:${{ steps.start-rabbitmq.outputs.id }}" \
232+
--environment 'PASSWORD=grapefruit' \
233+
--environment SSL_CERTS_DIR="${{ github.workspace }}/.ci/certs" \
223234
"${{ github.workspace }}/projects/Test/SequentialIntegration/SequentialIntegration.csproj" --no-restore --no-build --logger 'console;verbosity=detailed'
224235
- name: Maybe upload RabbitMQ logs
225236
if: failure()

Makefile

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,32 @@ RABBITMQ_DOCKER_NAME ?= rabbitmq-dotnet-client-rabbitmq
66
build:
77
dotnet build $(CURDIR)/Build.csproj
88

9+
# Note:
10+
#
11+
# --environment 'GITHUB_ACTIONS=true'
12+
#
13+
# The above argument is passed to `dotnet test` because it's assumed you
14+
# use this command to set up your local environment on Linux:
15+
#
16+
# ./.ci/ubuntu/gha-setup.sh toxiproxy
17+
#
18+
# The gha-setup.sh command has been tested on Ubuntu 22 and Arch Linux
19+
# and should work on any Linux system with a recent docker.
20+
#
921
test:
1022
dotnet test $(CURDIR)/projects/Test/Unit/Unit.csproj --logger 'console;verbosity=detailed'
11-
dotnet test --environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:$$(docker inspect --format='{{.Id}}' $(RABBITMQ_DOCKER_NAME))" \
12-
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' $(CURDIR)/projects/Test/Integration/Integration.csproj --logger 'console;verbosity=detailed'
23+
dotnet test --environment 'GITHUB_ACTIONS=true' \
24+
--environment 'RABBITMQ_LONG_RUNNING_TESTS=true' \
25+
--environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:$$(docker inspect --format='{{.Id}}' $(RABBITMQ_DOCKER_NAME))" \
1326
--environment 'RABBITMQ_TOXIPROXY_TESTS=true' \
1427
--environment 'PASSWORD=grapefruit' \
1528
--environment SSL_CERTS_DIR="$(CURDIR)/.ci/certs" \
1629
"$(CURDIR)/projects/Test/Integration/Integration.csproj" --logger 'console;verbosity=detailed'
17-
dotnet test --environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:$$(docker inspect --format='{{.Id}}' $(RABBITMQ_DOCKER_NAME))" $(CURDIR)/projects/Test/SequentialIntegration/SequentialIntegration.csproj --logger 'console;verbosity=detailed'
30+
dotnet test --environment 'RABBITMQ_LONG_RUNNING_TESTS=true' \
31+
--environment "RABBITMQ_RABBITMQCTL_PATH=DOCKER:$$(docker inspect --format='{{.Id}}' $(RABBITMQ_DOCKER_NAME))" \
32+
--environment 'PASSWORD=grapefruit' \
33+
--environment SSL_CERTS_DIR="$(CURDIR)/.ci/certs" \
34+
$(CURDIR)/projects/Test/SequentialIntegration/SequentialIntegration.csproj --logger 'console;verbosity=detailed'
1835

1936
# Note:
2037
# You must have the expected OAuth2 environment set up for this target

projects/Benchmarks/Benchmarks.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
<PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
44
<TargetFrameworks>net6.0;net472</TargetFrameworks>
5+
<NoWarn>$(NoWarn);CA2007</NoWarn>
6+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
57
</PropertyGroup>
68

79
<PropertyGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
810
<TargetFramework>net6.0</TargetFramework>
11+
<NoWarn>$(NoWarn);CA2007</NoWarn>
12+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
913
</PropertyGroup>
1014

1115
<PropertyGroup>

0 commit comments

Comments
 (0)